--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / frontend / components / network-visualiser / NetworkVisualiser.vue
Displaying Raw • Download
meshchatx/src/frontend/components/network-visualiser/NetworkVisualiser.vue 8ade296fb16b8f8e145f0c83e97179c456325be3 (8ade296f) Text, 87.61 KB
Tb4b4b4<Tff7b72templateTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex-1 h-full min-w-0 relative dark:bg-zinc-950 overflow-hidden"Tb4b4b4>
T8b949e<!-- network -->
Tb4b4b4<Tff7b72div Te6edf3idTff7b72=Ta5d6ff"network" Te6edf3classTff7b72=Ta5d6ff"w-full h-full"Tb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72NetworkVisualiserLoadingOverlay
Tb4b4b4:Te6edf3is-loadingTff7b72=Ta5d6ff"Te6edf3isLoadingTa5d6ff"
Tb4b4b4:Te6edf3loading-statusTff7b72=Ta5d6ff"Te6edf3loadingStatusTa5d6ff"
Tb4b4b4:Te6edf3total-nodes-to-loadTff7b72=Ta5d6ff"Te6edf3totalNodesToLoadTa5d6ff"
Tb4b4b4:Te6edf3loaded-nodes-countTff7b72=Ta5d6ff"Te6edf3loadedNodesCountTa5d6ff"
Tb4b4b4:Te6edf3current-batchTff7b72=Ta5d6ff"Te6edf3currentBatchTa5d6ff"
Tb4b4b4:Te6edf3total-batchesTff7b72=Ta5d6ff"Te6edf3totalBatchesTa5d6ff"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72NetworkVisualiserToolbar
Tb4b4b4:Te6edf3is-showing-controlsTff7b72=Ta5d6ff"Te6edf3isShowingControlsTa5d6ff"
Tb4b4b4:Te6edf3is-updatingTff7b72=Ta5d6ff"Te6edf3isUpdatingTa5d6ff"
Tb4b4b4:Te6edf3is-loadingTff7b72=Ta5d6ff"Te6edf3isLoadingTa5d6ff"
Tb4b4b4:Te6edf3auto-reloadTff7b72=Ta5d6ff"Te6edf3autoReloadTa5d6ff"
Tb4b4b4:Te6edf3enable-physicsTff7b72=Ta5d6ff"Te6edf3enablePhysicsTa5d6ff"
Tb4b4b4:Te6edf3hop-filter-sliderTff7b72=Ta5d6ff"Te6edf3hopFilterSliderTa5d6ff"
Tb4b4b4:Te6edf3hop-slider-maxTff7b72=Ta5d6ff"Te6edf3hopSliderMaxTa5d6ff"
Tb4b4b4:Te6edf3node-countTff7b72=Ta5d6ff"Te6edf3nodesTb4b4b4.Te6edf3lengthTa5d6ff"
Tb4b4b4:Te6edf3edge-countTff7b72=Ta5d6ff"Te6edf3edgesTb4b4b4.Te6edf3lengthTa5d6ff"
Tb4b4b4:Te6edf3online-interface-countTff7b72=Ta5d6ff"Te6edf3onlineInterfacesTb4b4b4.Te6edf3lengthTa5d6ff"
Tb4b4b4:Te6edf3offline-interface-countTff7b72=Ta5d6ff"Te6edf3offlineInterfacesTb4b4b4.Te6edf3lengthTa5d6ff"
Tb4b4b4:Te6edf3search-queryTff7b72=Ta5d6ff"Te6edf3searchQueryTa5d6ff"
Tb4b4b4@Te6edf3updateTb4b4b4:Te6edf3is-showing-controlsTff7b72=Ta5d6ff"Te6edf3isShowingControls Tff7b72= Te6edf3$eventTa5d6ff"
Tb4b4b4@Te6edf3updateTb4b4b4:Te6edf3auto-reloadTff7b72=Ta5d6ff"Te6edf3autoReload Tff7b72= Te6edf3$eventTa5d6ff"
Tb4b4b4@Te6edf3updateTb4b4b4:Te6edf3enable-physicsTff7b72=Ta5d6ff"Te6edf3enablePhysics Tff7b72= Te6edf3$eventTa5d6ff"
Tb4b4b4@Te6edf3updateTb4b4b4:Te6edf3hop-filter-sliderTff7b72=Ta5d6ff"Te6edf3hopFilterSlider Tff7b72= Te6edf3$eventTa5d6ff"
Tb4b4b4@Te6edf3updateTb4b4b4:Te6edf3search-queryTff7b72=Ta5d6ff"Te6edf3searchQuery Tff7b72= Te6edf3$eventTa5d6ff"
Tb4b4b4@Te6edf3manual-updateTff7b72=Ta5d6ff"Te6edf3manualUpdateTa5d6ff"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72NetworkVisualiserLegend
Tb4b4b4:Te6edf3show-discovered-interfacesTff7b72=Ta5d6ff"Te6edf3showDiscoveredInterfacesTa5d6ff"
Tb4b4b4:Te6edf3discovered-countTff7b72=Ta5d6ff"Te6edf3discoveredInterfacesTb4b4b4.Te6edf3lengthTa5d6ff"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72templateTb4b4b4>
Tb4b4b4<Tff7b72scriptTb4b4b4>
Tff7b72import Ta5d6ff"vis-network/styles/vis-network.css"Tb4b4b4;
Tff7b72import Tb4b4b4{ Te6edf3Network Tb4b4b4} Tff7b72from Ta5d6ff"vis-network"Tb4b4b4;
Tff7b72import Tb4b4b4{ Te6edf3DataSet Tb4b4b4} Tff7b72from Ta5d6ff"vis-data"Tb4b4b4;
Tff7b72import Tff7b72* Tff7b72as Te6edf3mdi Tff7b72from Ta5d6ff"@mdi/js"Tb4b4b4;
Tff7b72import Te6edf3Utils Tff7b72from Ta5d6ff"../../js/Utils"Tb4b4b4;
Tff7b72import Te6edf3GlobalEmitter Tff7b72from Ta5d6ff"../../js/GlobalEmitter"Tb4b4b4;
Tff7b72import Te6edf3ToastUtils Tff7b72from Ta5d6ff"../../js/ToastUtils"Tb4b4b4;
Tff7b72import Tb4b4b4{ Te6edf3PONG_NODE_IDS Tb4b4b4} Tff7b72from Ta5d6ff"./internal/visualiserConstants.js"Tb4b4b4;
Tff7b72import Te6edf3NetworkVisualiserLoadingOverlay Tff7b72from Ta5d6ff"./internal/NetworkVisualiserLoadingOverlay.vue"Tb4b4b4;
Tff7b72import Te6edf3NetworkVisualiserToolbar Tff7b72from Ta5d6ff"./internal/NetworkVisualiserToolbar.vue"Tb4b4b4;
Tff7b72import Te6edf3NetworkVisualiserLegend Tff7b72from Ta5d6ff"./internal/NetworkVisualiserLegend.vue"Tb4b4b4;
Tff7b72export Tff7b72default Tb4b4b4{
Te6edf3nameTff7b72: Ta5d6ff"NetworkVisualiser"Tb4b4b4,
Te6edf3componentsTff7b72: Tb4b4b4{
Te6edf3NetworkVisualiserLoadingOverlayTb4b4b4,
Te6edf3NetworkVisualiserToolbarTb4b4b4,
Te6edf3NetworkVisualiserLegendTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3dataTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4{
Te6edf3reticulumLogoPathTff7b72: Ta5d6ff"/assets/images/reticulum_logo_512.png"Tb4b4b4,
Te6edf3configTff7b72: Tff7b72nullTb4b4b4,
Te6edf3autoReloadTff7b72: Tff7b72falseTb4b4b4,
Te6edf3reloadIntervalTff7b72: Tff7b72nullTb4b4b4,
Te6edf3isShowingControlsTff7b72: Tff7b72trueTb4b4b4,
Te6edf3isUpdatingTff7b72: Tff7b72falseTb4b4b4,
Te6edf3isLoadingTff7b72: Tff7b72falseTb4b4b4,
Te6edf3enablePhysicsTff7b72: Tff7b72trueTb4b4b4,
Te6edf3enableOrbitTff7b72: Tff7b72falseTb4b4b4,
Te6edf3enableBouncingBallsTff7b72: Tff7b72falseTb4b4b4,
Te6edf3enableFallingSkiesTff7b72: Tff7b72falseTb4b4b4,
Te6edf3enableSnakeTff7b72: Tff7b72falseTb4b4b4,
Te6edf3enablePongTff7b72: Tff7b72falseTb4b4b4,
Te6edf3orbitAnimationFrameTff7b72: Tff7b72nullTb4b4b4,
Te6edf3bouncingBallsAnimationFrameTff7b72: Tff7b72nullTb4b4b4,
Te6edf3fallingSkiesAnimationFrameTff7b72: Tff7b72nullTb4b4b4,
Te6edf3snakeAnimationFrameTff7b72: Tff7b72nullTb4b4b4,
Te6edf3pongAnimationFrameTff7b72: Tff7b72nullTb4b4b4,
Te6edf3showDisabledInterfacesTff7b72: Tff7b72falseTb4b4b4,
Te6edf3showDiscoveredInterfacesTff7b72: Tff7b72falseTb4b4b4,
Te6edf3loadingStatusTff7b72: Ta5d6ff"Initializing..."Tb4b4b4,
Te6edf3loadedNodesCountTff7b72: T79c0ff0Tb4b4b4,
Te6edf3totalNodesToLoadTff7b72: T79c0ff0Tb4b4b4,
Te6edf3currentBatchTff7b72: T79c0ff0Tb4b4b4,
Te6edf3totalBatchesTff7b72: T79c0ff0Tb4b4b4,
Te6edf3interfacesTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Te6edf3discoveredInterfacesTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Te6edf3discoveredActiveTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Te6edf3pathTableTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Te6edf3announcesTff7b72: Tb4b4b4{Tb4b4b4}Tb4b4b4,
Te6edf3conversationsTff7b72: Tb4b4b4{Tb4b4b4}Tb4b4b4,
Te6edf3networkTff7b72: Tff7b72nullTb4b4b4,
Te6edf3nodesTff7b72: Tff7b72new Te6edf3DataSetTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3edgesTff7b72: Tff7b72new Te6edf3DataSetTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3iconCacheTff7b72: Tb4b4b4{Tb4b4b4}Tb4b4b4,
Te6edf3pageSizeTff7b72: T79c0ff1000Tb4b4b4,
Te6edf3searchQueryTff7b72: Ta5d6ff""Tb4b4b4,
Te6edf3hopFilterSliderTff7b72: T79c0ff0Tb4b4b4,
Te6edf3hopFilterDebounceTimerTff7b72: Tff7b72nullTb4b4b4,
Te6edf3abortControllerTff7b72: Tff7b72new Te6edf3AbortControllerTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3currentLODTff7b72: Ta5d6ff"high"Tb4b4b4,
Te6edf3lastVizKeysTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Te6edf3vizHadOneLayoutTff7b72: Tff7b72falseTb4b4b4,
Te6edf3didDisableStabilizationTff7b72: Tff7b72falseTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3computedTff7b72: Tb4b4b4{
Te6edf3onlineInterfacesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3interfacesTb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3iTb4b4b4) Tb4b4b4=> Te6edf3iTb4b4b4.Te6edf3statusTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3offlineInterfacesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3interfacesTb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3iTb4b4b4) Tb4b4b4=> Tff7b72!Te6edf3iTb4b4b4.Te6edf3statusTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3hopSliderMaxTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72let Te6edf3m Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3e Tff7b72of Tff7b72thisTb4b4b4.Te6edf3pathTableTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3eTb4b4b4.Te6edf3hops Tff7b72!= Tff7b72null Tff7b72&& Te6edf3eTb4b4b4.Te6edf3hops Tff7b72> Te6edf3mTb4b4b4) Te6edf3m Tff7b72= Te6edf3eTb4b4b4.Te6edf3hopsTb4b4b4;
Tb4b4b4}
Tff7b72return Tffa657MathTb4b4b4.Te6edf3minTb4b4b4(T79c0ff256Tb4b4b4, Tffa657MathTb4b4b4.Te6edf3maxTb4b4b4(T79c0ff1Tb4b4b4, Te6edf3mTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3hopFilterMaxTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3hopFilterSlider Tff7b72=== T79c0ff0Tb4b4b4) Tff7b72return Tff7b72nullTb4b4b4;
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3hopFilterSliderTb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3watchTff7b72: Tb4b4b4{
Te6edf3autoReloadTb4b4b4(Te6edf3valTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3valTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3manualUpdateTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3enablePhysicsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3refreshPhysicsEnabledTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3enableOrbitTb4b4b4(Te6edf3valTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3valTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3enableBouncingBalls Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3enableFallingSkies Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3enableSnake Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3enablePong Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopFallingSkiesTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopSnakeTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopPongTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3startOrbitTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3stopOrbitTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3enableBouncingBallsTb4b4b4(Te6edf3valTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3valTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3enableOrbit Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3enableFallingSkies Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3enableSnake Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3enablePong Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopFallingSkiesTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopSnakeTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopPongTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3startBouncingBallsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3stopBouncingBallsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3enableFallingSkiesTb4b4b4(Te6edf3valTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3valTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3enableOrbit Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3enableBouncingBalls Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3enableSnake Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3enablePong Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopOrbitTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopBouncingBallsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopSnakeTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopPongTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3startFallingSkiesTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3stopFallingSkiesTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3enableSnakeTb4b4b4(Te6edf3valTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3valTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3enableOrbit Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3enableBouncingBalls Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3enableFallingSkies Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3enablePong Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopOrbitTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopBouncingBallsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopFallingSkiesTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopPongTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3startSnakeTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3stopSnakeTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3enablePongTb4b4b4(Te6edf3valTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3valTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3enableOrbit Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3enableBouncingBalls Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3enableFallingSkies Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3enableSnake Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopOrbitTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopBouncingBallsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopFallingSkiesTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopSnakeTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3startPongTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3stopPongTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3searchQueryTb4b4b4(Tb4b4b4) Tb4b4b4{
T8b949e// we don't want to trigger a full update from server, just re-run the filtering on existing data
Tff7b72thisTb4b4b4.Te6edf3processVisualizationTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3hopSliderMaxTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3hopFilterSlider Tff7b72> Tff7b72thisTb4b4b4.Te6edf3hopSliderMaxTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3hopFilterSlider Tff7b72= Tff7b72thisTb4b4b4.Te6edf3hopSliderMaxTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3hopFilterSliderTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3hopFilterDebounceTimerTb4b4b4) Te6edf3clearTimeoutTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3hopFilterDebounceTimerTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3hopFilterDebounceTimer Tff7b72= Te6edf3setTimeoutTb4b4b4(Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3hopFilterDebounceTimer Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3processVisualizationTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4, T79c0ff80Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3beforeUnmountTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3abortControllerTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3abortControllerTb4b4b4.Te6edf3abortTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3_toggleOrbitHandlerTb4b4b4) Tb4b4b4{
Te6edf3GlobalEmitterTb4b4b4.Te6edf3offTb4b4b4(Ta5d6ff"toggle-orbit"Tb4b4b4, Tff7b72thisTb4b4b4.Te6edf3_toggleOrbitHandlerTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3_toggleBouncingBallsHandlerTb4b4b4) Tb4b4b4{
Te6edf3GlobalEmitterTb4b4b4.Te6edf3offTb4b4b4(Ta5d6ff"toggle-bouncing-balls"Tb4b4b4, Tff7b72thisTb4b4b4.Te6edf3_toggleBouncingBallsHandlerTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3_toggleFallingSkiesHandlerTb4b4b4) Tb4b4b4{
Te6edf3GlobalEmitterTb4b4b4.Te6edf3offTb4b4b4(Ta5d6ff"toggle-falling-skies"Tb4b4b4, Tff7b72thisTb4b4b4.Te6edf3_toggleFallingSkiesHandlerTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3_visualiserPrefsHandlerTb4b4b4) Tb4b4b4{
Te6edf3GlobalEmitterTb4b4b4.Te6edf3offTb4b4b4(Ta5d6ff"visualiser-display-prefs-changed"Tb4b4b4, Tff7b72thisTb4b4b4.Te6edf3_visualiserPrefsHandlerTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3_toggleSnakeHandlerTb4b4b4) Tb4b4b4{
Te6edf3GlobalEmitterTb4b4b4.Te6edf3offTb4b4b4(Ta5d6ff"toggle-snake"Tb4b4b4, Tff7b72thisTb4b4b4.Te6edf3_toggleSnakeHandlerTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3_togglePongHandlerTb4b4b4) Tb4b4b4{
Te6edf3GlobalEmitterTb4b4b4.Te6edf3offTb4b4b4(Ta5d6ff"toggle-pong"Tb4b4b4, Tff7b72thisTb4b4b4.Te6edf3_togglePongHandlerTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3detachGameKeyListenersTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopOrbitTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopBouncingBallsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopFallingSkiesTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopSnakeTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopPongTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Te6edf3clearIntervalTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3reloadIntervalTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3hopFilterDebounceTimerTb4b4b4) Tb4b4b4{
Te6edf3clearTimeoutTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3hopFilterDebounceTimerTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3hopFilterDebounceTimer Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3destroyTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e// Clear icon cache to free memory
Tff7b72const Te6edf3revokedUrls Tff7b72= Tff7b72new Tffa657SetTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3keys Tff7b72= Tffa657ObjectTb4b4b4.Te6edf3keysTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3iconCacheTb4b4b4)Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3key Tff7b72of Te6edf3keysTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3url Tff7b72= Tff7b72thisTb4b4b4.Te6edf3iconCacheTb4b4b4[Te6edf3keyTb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3url Tff7b72&& Te6edf3urlTb4b4b4.Te6edf3startsWithTb4b4b4(Ta5d6ff"blob:"Tb4b4b4) Tff7b72&& Tff7b72!Te6edf3revokedUrlsTb4b4b4.Te6edf3hasTb4b4b4(Te6edf3urlTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3URLTb4b4b4.Te6edf3revokeObjectURLTb4b4b4(Te6edf3urlTb4b4b4)Tb4b4b4;
Te6edf3revokedUrlsTb4b4b4.Te6edf3addTb4b4b4(Te6edf3urlTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72delete Tff7b72thisTb4b4b4.Te6edf3iconCacheTb4b4b4[Te6edf3keyTb4b4b4]Tb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3iconCache Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3mountedTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3isMobile Tff7b72= Tffa657windowTb4b4b4.Te6edf3innerWidth Tff7b72< T79c0ff640Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3isMobileTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3isShowingControls Tff7b72= Tff7b72falseTb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3_toggleOrbitHandler Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3enableOrbit Tff7b72= Tff7b72!Tff7b72thisTb4b4b4.Te6edf3enableOrbitTb4b4b4;
Tb4b4b4}Tb4b4b4;
Te6edf3GlobalEmitterTb4b4b4.Te6edf3onTb4b4b4(Ta5d6ff"toggle-orbit"Tb4b4b4, Tff7b72thisTb4b4b4.Te6edf3_toggleOrbitHandlerTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_toggleBouncingBallsHandler Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3enableBouncingBalls Tff7b72= Tff7b72!Tff7b72thisTb4b4b4.Te6edf3enableBouncingBallsTb4b4b4;
Tb4b4b4}Tb4b4b4;
Te6edf3GlobalEmitterTb4b4b4.Te6edf3onTb4b4b4(Ta5d6ff"toggle-bouncing-balls"Tb4b4b4, Tff7b72thisTb4b4b4.Te6edf3_toggleBouncingBallsHandlerTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_toggleFallingSkiesHandler Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3enableFallingSkies Tff7b72= Tff7b72!Tff7b72thisTb4b4b4.Te6edf3enableFallingSkiesTb4b4b4;
Tb4b4b4}Tb4b4b4;
Te6edf3GlobalEmitterTb4b4b4.Te6edf3onTb4b4b4(Ta5d6ff"toggle-falling-skies"Tb4b4b4, Tff7b72thisTb4b4b4.Te6edf3_toggleFallingSkiesHandlerTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_visualiserPrefsHandler Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3loadVisualiserDisplayPrefsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3processVisualizationTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4;
Te6edf3GlobalEmitterTb4b4b4.Te6edf3onTb4b4b4(Ta5d6ff"visualiser-display-prefs-changed"Tb4b4b4, Tff7b72thisTb4b4b4.Te6edf3_visualiserPrefsHandlerTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_toggleSnakeHandler Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3enableSnake Tff7b72= Tff7b72!Tff7b72thisTb4b4b4.Te6edf3enableSnakeTb4b4b4;
Tb4b4b4}Tb4b4b4;
Te6edf3GlobalEmitterTb4b4b4.Te6edf3onTb4b4b4(Ta5d6ff"toggle-snake"Tb4b4b4, Tff7b72thisTb4b4b4.Te6edf3_toggleSnakeHandlerTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_togglePongHandler Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3enablePong Tff7b72= Tff7b72!Tff7b72thisTb4b4b4.Te6edf3enablePongTb4b4b4;
Tb4b4b4}Tb4b4b4;
Te6edf3GlobalEmitterTb4b4b4.Te6edf3onTb4b4b4(Ta5d6ff"toggle-pong"Tb4b4b4, Tff7b72thisTb4b4b4.Te6edf3_togglePongHandlerTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3loadVisualiserDisplayPrefsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3initTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3methodsTff7b72: Tb4b4b4{
Tff7b72async Te6edf3getInterfaceStatsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff`Ta5d6ff/api/v1/interface-statsTa5d6ff`Tb4b4b4, Tb4b4b4{
Te6edf3signalTff7b72: Tff7b72thisTb4b4b4.Te6edf3abortControllerTb4b4b4.Te6edf3signalTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3interfaces Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3interface_statsTff7b72?Tb4b4b4.Te6edf3interfaces Tff7b72?? Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3isCancelTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4) Tff7b72returnTb4b4b4;
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Ta5d6ff"Failed to fetch interface stats"Tb4b4b4, Te6edf3eTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3getDiscoveredInterfacesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff`Ta5d6ff/api/v1/reticulum/discovered-interfacesTa5d6ff`Tb4b4b4, Tb4b4b4{
Te6edf3signalTff7b72: Tff7b72thisTb4b4b4.Te6edf3abortControllerTb4b4b4.Te6edf3signalTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3discoveredInterfaces Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTff7b72?Tb4b4b4.Te6edf3interfaces Tff7b72?? Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3discoveredActive Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTff7b72?Tb4b4b4.Te6edf3active Tff7b72?? Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3isCancelTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4) Tff7b72returnTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3getPathTableBatchTb4b4b4(Te6edf3destinationHashes Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3pathTable Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3loadingStatus Tff7b72= Ta5d6ff"Loading paths..."Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3destinationHashes Tff7b72&& Te6edf3destinationHashesTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3resp Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3postTb4b4b4(
Ta5d6ff`Ta5d6ff/api/v1/path-tableTa5d6ff`Tb4b4b4,
Tb4b4b4{ Te6edf3destination_hashesTff7b72: Te6edf3destinationHashes Tb4b4b4}Tb4b4b4,
Tb4b4b4{
Te6edf3signalTff7b72: Tff7b72thisTb4b4b4.Te6edf3abortControllerTb4b4b4.Te6edf3signalTb4b4b4,
Tb4b4b4}
Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3pathTableTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4...Te6edf3respTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3path_tableTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72const Te6edf3firstResp Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff`Ta5d6ff/api/v1/path-tableTa5d6ff`Tb4b4b4, Tb4b4b4{
Te6edf3paramsTff7b72: Tb4b4b4{ Te6edf3limitTff7b72: Tff7b72thisTb4b4b4.Te6edf3pageSizeTb4b4b4, Te6edf3offsetTff7b72: T79c0ff0 Tb4b4b4}Tb4b4b4,
Te6edf3signalTff7b72: Tff7b72thisTb4b4b4.Te6edf3abortControllerTb4b4b4.Te6edf3signalTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3pathTableTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4...Te6edf3firstRespTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3path_tableTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3totalCount Tff7b72= Te6edf3firstRespTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3total_countTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3totalCount Tff7b72> Tff7b72thisTb4b4b4.Te6edf3pageSizeTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3concurrency Tff7b72= T79c0ff3Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72let Te6edf3offset Tff7b72= Tff7b72thisTb4b4b4.Te6edf3pageSizeTb4b4b4; Te6edf3offset Tff7b72< Te6edf3totalCountTb4b4b4; Te6edf3offset Tff7b72+= Tff7b72thisTb4b4b4.Te6edf3pageSize Tff7b72* Te6edf3concurrencyTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3abortControllerTb4b4b4.Te6edf3signalTb4b4b4.Te6edf3abortedTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72const Te6edf3chunk Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72let Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3concurrency Tff7b72&& Te6edf3offset Tff7b72+ Te6edf3i Tff7b72* Tff7b72thisTb4b4b4.Te6edf3pageSize Tff7b72< Te6edf3totalCountTb4b4b4; Te6edf3iTff7b72++Tb4b4b4) Tb4b4b4{
Te6edf3chunkTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3offset Tff7b72+ Te6edf3i Tff7b72* Tff7b72thisTb4b4b4.Te6edf3pageSizeTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3promises Tff7b72= Te6edf3chunkTb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3oTb4b4b4) Tb4b4b4=>
Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff`Ta5d6ff/api/v1/path-tableTa5d6ff`Tb4b4b4, Tb4b4b4{
Te6edf3paramsTff7b72: Tb4b4b4{ Te6edf3limitTff7b72: Tff7b72thisTb4b4b4.Te6edf3pageSizeTb4b4b4, Te6edf3offsetTff7b72: Te6edf3o Tb4b4b4}Tb4b4b4,
Te6edf3signalTff7b72: Tff7b72thisTb4b4b4.Te6edf3abortControllerTb4b4b4.Te6edf3signalTb4b4b4,
Tb4b4b4}Tb4b4b4)
Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3responses Tff7b72= Tff7b72await Tffa657PromiseTb4b4b4.Te6edf3allTb4b4b4(Te6edf3promisesTb4b4b4)Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3r Tff7b72of Te6edf3responsesTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3pathTableTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4...Te6edf3rTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3path_tableTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3loadingStatus Tff7b72= Ta5d6ff`Ta5d6ffLoading paths (Tffd700${Tff7b72thisTb4b4b4.Te6edf3pathTableTb4b4b4.Te6edf3lengthTffd700}Ta5d6ff / Tffd700${Te6edf3totalCountTffd700}Ta5d6ff)Ta5d6ff`Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3isCancelTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4) Tff7b72returnTb4b4b4;
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Ta5d6ff"Failed to fetch path table batch"Tb4b4b4, Te6edf3eTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3getAnnouncesBatchTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3announces Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tff7b72const Te6edf3aspectsToFetch Tff7b72= Tb4b4b4[Ta5d6ff"lxmf.delivery"Tb4b4b4, Ta5d6ff"nomadnetwork.node"Tb4b4b4]Tb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3aspect Tff7b72of Te6edf3aspectsToFetchTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3abortControllerTb4b4b4.Te6edf3signalTb4b4b4.Te6edf3abortedTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3loadingStatus Tff7b72= Ta5d6ff`Ta5d6ffLoading Tffd700${Te6edf3aspectTffd700}Ta5d6ff...Ta5d6ff`Tb4b4b4;
Tff7b72let Te6edf3offset Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72let Te6edf3hasMore Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72while Tb4b4b4(Te6edf3hasMoreTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3resp Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff`Ta5d6ff/api/v1/announcesTa5d6ff`Tb4b4b4, Tb4b4b4{
Te6edf3paramsTff7b72: Tb4b4b4{ Te6edf3aspectTb4b4b4, Te6edf3limitTff7b72: Tff7b72thisTb4b4b4.Te6edf3pageSizeTb4b4b4, Te6edf3offset Tb4b4b4}Tb4b4b4,
Te6edf3signalTff7b72: Tff7b72thisTb4b4b4.Te6edf3abortControllerTb4b4b4.Te6edf3signalTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3announce Tff7b72of Te6edf3respTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3announcesTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3announcesTb4b4b4[Te6edf3announceTb4b4b4.Te6edf3destination_hashTb4b4b4] Tff7b72= Te6edf3announceTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3loaded Tff7b72= Tffa657ObjectTb4b4b4.Te6edf3keysTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3announcesTb4b4b4)Tb4b4b4.Te6edf3lengthTb4b4b4;
Tff7b72const Te6edf3total Tff7b72= Te6edf3respTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3total_countTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3loadingStatus Tff7b72= Ta5d6ff`Ta5d6ffLoading announces (Tffd700${Te6edf3loadedTffd700}Ta5d6ff)Ta5d6ff`Tb4b4b4;
Te6edf3offset Tff7b72+= Te6edf3respTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3announcesTb4b4b4.Te6edf3lengthTb4b4b4;
Te6edf3hasMore Tff7b72= Te6edf3respTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3announcesTb4b4b4.Te6edf3length Tff7b72=== Tff7b72thisTb4b4b4.Te6edf3pageSize Tff7b72&& Te6edf3offset Tff7b72< Te6edf3totalTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3isCancelTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4) Tff7b72returnTb4b4b4;
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Ta5d6ff"Failed to fetch announces batch"Tb4b4b4, Te6edf3eTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3getConfigTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff"/api/v1/config"Tb4b4b4, Tb4b4b4{
Te6edf3signalTff7b72: Tff7b72thisTb4b4b4.Te6edf3abortControllerTb4b4b4.Te6edf3signalTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3config Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3configTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3isCancelTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4) Tff7b72returnTb4b4b4;
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Ta5d6ff"Failed to fetch config"Tb4b4b4, Te6edf3eTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3getConversationsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff`Ta5d6ff/api/v1/lxmf/conversationsTa5d6ff`Tb4b4b4, Tb4b4b4{
Te6edf3signalTff7b72: Tff7b72thisTb4b4b4.Te6edf3abortControllerTb4b4b4.Te6edf3signalTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3conversations Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3conversation Tff7b72of Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3conversationsTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3conversationsTb4b4b4[Te6edf3conversationTb4b4b4.Te6edf3destination_hashTb4b4b4] Tff7b72= Te6edf3conversationTb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3isCancelTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4) Tff7b72returnTb4b4b4;
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Ta5d6ff"Failed to fetch conversations"Tb4b4b4, Te6edf3eTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3createIconImageTb4b4b4(Te6edf3iconNameTb4b4b4, Te6edf3foregroundColorTb4b4b4, Te6edf3backgroundColorTb4b4b4, Te6edf3size Tff7b72= T79c0ff64Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3cacheKey Tff7b72= Ta5d6ff`Tffd700${Te6edf3iconNameTffd700}Ta5d6ff-Tffd700${Te6edf3foregroundColorTffd700}Ta5d6ff-Tffd700${Te6edf3backgroundColorTffd700}Ta5d6ff-Tffd700${Te6edf3sizeTffd700}Ta5d6ff`Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3iconCacheTb4b4b4[Te6edf3cacheKeyTb4b4b4]Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3iconCacheTb4b4b4[Te6edf3cacheKeyTb4b4b4]Tb4b4b4;
Tb4b4b4}
T8b949e// Limit cache size to 500 icons (approx 15-20MB max)
Tff7b72const Te6edf3cacheKeys Tff7b72= Tffa657ObjectTb4b4b4.Te6edf3keysTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3iconCacheTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3cacheKeysTb4b4b4.Te6edf3length Tff7b72>= T79c0ff500Tb4b4b4) Tb4b4b4{
T8b949e// simple FIFO eviction
Tff7b72const Te6edf3oldKey Tff7b72= Te6edf3cacheKeysTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4;
Tff7b72const Te6edf3oldUrl Tff7b72= Tff7b72thisTb4b4b4.Te6edf3iconCacheTb4b4b4[Te6edf3oldKeyTb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3oldUrl Tff7b72&& Te6edf3oldUrlTb4b4b4.Te6edf3startsWithTb4b4b4(Ta5d6ff"blob:"Tb4b4b4)Tb4b4b4) Tb4b4b4{
T8b949e// Check if any other keys use this URL before revoking
Tff7b72const Te6edf3stillUsed Tff7b72= Tffa657ObjectTb4b4b4.Te6edf3valuesTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3iconCacheTb4b4b4)Tb4b4b4.Te6edf3someTb4b4b4(
Tb4b4b4(Te6edf3uTb4b4b4, Te6edf3iTb4b4b4) Tb4b4b4=> Te6edf3u Tff7b72=== Te6edf3oldUrl Tff7b72&& Tffa657ObjectTb4b4b4.Te6edf3keysTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3iconCacheTb4b4b4)Tb4b4b4[Te6edf3iTb4b4b4] Tff7b72!== Te6edf3oldKey
Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3stillUsedTb4b4b4) Tb4b4b4{
Te6edf3URLTb4b4b4.Te6edf3revokeObjectURLTb4b4b4(Te6edf3oldUrlTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72delete Tff7b72thisTb4b4b4.Te6edf3iconCacheTb4b4b4[Te6edf3oldKeyTb4b4b4]Tb4b4b4;
Tb4b4b4}
Tff7b72return Tff7b72new Tffa657PromiseTb4b4b4(Tb4b4b4(Te6edf3resolveTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3canvas Tff7b72= Tffa657documentTb4b4b4.Te6edf3createElementTb4b4b4(Ta5d6ff"canvas"Tb4b4b4)Tb4b4b4;
Te6edf3canvasTb4b4b4.Te6edf3width Tff7b72= Te6edf3sizeTb4b4b4;
Te6edf3canvasTb4b4b4.Te6edf3height Tff7b72= Te6edf3sizeTb4b4b4;
Tff7b72const Te6edf3ctx Tff7b72= Te6edf3canvasTb4b4b4.Te6edf3getContextTb4b4b4(Ta5d6ff"2d"Tb4b4b4, Tb4b4b4{ Te6edf3alphaTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4;
T8b949e// draw background circle with subtle gradient
Tff7b72const Te6edf3gradient Tff7b72= Te6edf3ctxTb4b4b4.Te6edf3createLinearGradientTb4b4b4(T79c0ff0Tb4b4b4, T79c0ff0Tb4b4b4, T79c0ff0Tb4b4b4, Te6edf3sizeTb4b4b4)Tb4b4b4;
Te6edf3gradientTb4b4b4.Te6edf3addColorStopTb4b4b4(T79c0ff0Tb4b4b4, Te6edf3backgroundColorTb4b4b4)Tb4b4b4;
Te6edf3gradientTb4b4b4.Te6edf3addColorStopTb4b4b4(T79c0ff1Tb4b4b4, Te6edf3backgroundColorTb4b4b4)Tb4b4b4;
Te6edf3ctxTb4b4b4.Te6edf3fillStyle Tff7b72= Te6edf3gradientTb4b4b4;
Te6edf3ctxTb4b4b4.Te6edf3beginPathTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3ctxTb4b4b4.Te6edf3arcTb4b4b4(Te6edf3size Tff7b72/ T79c0ff2Tb4b4b4, Te6edf3size Tff7b72/ T79c0ff2Tb4b4b4, Te6edf3size Tff7b72/ T79c0ff2 Tff7b72- T79c0ff2Tb4b4b4, T79c0ff0Tb4b4b4, T79c0ff2 Tff7b72* Tffa657MathTb4b4b4.Te6edf3PITb4b4b4)Tb4b4b4;
Te6edf3ctxTb4b4b4.Te6edf3fillTb4b4b4(Tb4b4b4)Tb4b4b4;
T8b949e// Add subtle inner shadow for depth
Tff7b72const Te6edf3innerShadow Tff7b72= Te6edf3ctxTb4b4b4.Te6edf3createRadialGradientTb4b4b4(
Te6edf3size Tff7b72/ T79c0ff2Tb4b4b4,
Te6edf3size Tff7b72/ T79c0ff2Tb4b4b4,
Te6edf3size Tff7b72/ T79c0ff2 Tff7b72- T79c0ff10Tb4b4b4,
Te6edf3size Tff7b72/ T79c0ff2Tb4b4b4,
Te6edf3size Tff7b72/ T79c0ff2Tb4b4b4,
Te6edf3size Tff7b72/ T79c0ff2
Tb4b4b4)Tb4b4b4;
Te6edf3innerShadowTb4b4b4.Te6edf3addColorStopTb4b4b4(T79c0ff0Tb4b4b4, Ta5d6ff"rgba(0,0,0,0)"Tb4b4b4)Tb4b4b4;
Te6edf3innerShadowTb4b4b4.Te6edf3addColorStopTb4b4b4(T79c0ff1Tb4b4b4, Ta5d6ff"rgba(0,0,0,0.15)"Tb4b4b4)Tb4b4b4;
Te6edf3ctxTb4b4b4.Te6edf3fillStyle Tff7b72= Te6edf3innerShadowTb4b4b4;
Te6edf3ctxTb4b4b4.Te6edf3fillTb4b4b4(Tb4b4b4)Tb4b4b4;
T8b949e// Add a glass highlight on top
Tff7b72const Te6edf3highlight Tff7b72= Te6edf3ctxTb4b4b4.Te6edf3createLinearGradientTb4b4b4(T79c0ff0Tb4b4b4, T79c0ff0Tb4b4b4, T79c0ff0Tb4b4b4, Te6edf3sizeTb4b4b4)Tb4b4b4;
Te6edf3highlightTb4b4b4.Te6edf3addColorStopTb4b4b4(T79c0ff0Tb4b4b4, Ta5d6ff"rgba(255,255,255,0.25)"Tb4b4b4)Tb4b4b4;
Te6edf3highlightTb4b4b4.Te6edf3addColorStopTb4b4b4(T79c0ff0.5Tb4b4b4, Ta5d6ff"rgba(255,255,255,0)"Tb4b4b4)Tb4b4b4;
Te6edf3ctxTb4b4b4.Te6edf3fillStyle Tff7b72= Te6edf3highlightTb4b4b4;
Te6edf3ctxTb4b4b4.Te6edf3beginPathTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3ctxTb4b4b4.Te6edf3arcTb4b4b4(Te6edf3size Tff7b72/ T79c0ff2Tb4b4b4, Te6edf3size Tff7b72/ T79c0ff2Tb4b4b4, Te6edf3size Tff7b72/ T79c0ff2 Tff7b72- T79c0ff4Tb4b4b4, T79c0ff0Tb4b4b4, T79c0ff2 Tff7b72* Tffa657MathTb4b4b4.Te6edf3PITb4b4b4)Tb4b4b4;
Te6edf3ctxTb4b4b4.Te6edf3fillTb4b4b4(Tb4b4b4)Tb4b4b4;
T8b949e// stroke
Te6edf3ctxTb4b4b4.Te6edf3strokeStyle Tff7b72= Ta5d6ff"rgba(255,255,255,0.2)"Tb4b4b4;
Te6edf3ctxTb4b4b4.Te6edf3lineWidth Tff7b72= T79c0ff2Tb4b4b4;
Te6edf3ctxTb4b4b4.Te6edf3strokeTb4b4b4(Tb4b4b4)Tb4b4b4;
T8b949e// load MDI icon SVG
Tff7b72const Te6edf3iconSvg Tff7b72= Tff7b72thisTb4b4b4.Te6edf3getMdiIconSvgTb4b4b4(Te6edf3iconNameTb4b4b4, Te6edf3foregroundColorTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3img Tff7b72= Tff7b72new Te6edf3ImageTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3svgBlob Tff7b72= Tff7b72new Te6edf3BlobTb4b4b4(Tb4b4b4[Te6edf3iconSvgTb4b4b4]Tb4b4b4, Tb4b4b4{ Te6edf3typeTff7b72: Ta5d6ff"image/svg+xml" Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3url Tff7b72= Te6edf3URLTb4b4b4.Te6edf3createObjectURLTb4b4b4(Te6edf3svgBlobTb4b4b4)Tb4b4b4;
Te6edf3imgTb4b4b4.Te6edf3onload Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3abortControllerTb4b4b4.Te6edf3signalTb4b4b4.Te6edf3abortedTb4b4b4) Tb4b4b4{
Te6edf3URLTb4b4b4.Te6edf3revokeObjectURLTb4b4b4(Te6edf3urlTb4b4b4)Tb4b4b4;
Te6edf3resolveTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
T8b949e// Draw a subtle shadow for the icon itself
Te6edf3ctxTb4b4b4.Te6edf3shadowColor Tff7b72= Ta5d6ff"rgba(0,0,0,0.2)"Tb4b4b4;
Te6edf3ctxTb4b4b4.Te6edf3shadowBlur Tff7b72= T79c0ff4Tb4b4b4;
Te6edf3ctxTb4b4b4.Te6edf3shadowOffsetX Tff7b72= T79c0ff0Tb4b4b4;
Te6edf3ctxTb4b4b4.Te6edf3shadowOffsetY Tff7b72= T79c0ff2Tb4b4b4;
Te6edf3ctxTb4b4b4.Te6edf3drawImageTb4b4b4(Te6edf3imgTb4b4b4, Te6edf3size Tff7b72* T79c0ff0.22Tb4b4b4, Te6edf3size Tff7b72* T79c0ff0.22Tb4b4b4, Te6edf3size Tff7b72* T79c0ff0.56Tb4b4b4, Te6edf3size Tff7b72* T79c0ff0.56Tb4b4b4)Tb4b4b4;
T8b949e// Reset shadow for next operations
Te6edf3ctxTb4b4b4.Te6edf3shadowColor Tff7b72= Ta5d6ff"transparent"Tb4b4b4;
Te6edf3ctxTb4b4b4.Te6edf3shadowBlur Tff7b72= T79c0ff0Tb4b4b4;
Te6edf3ctxTb4b4b4.Te6edf3shadowOffsetX Tff7b72= T79c0ff0Tb4b4b4;
Te6edf3ctxTb4b4b4.Te6edf3shadowOffsetY Tff7b72= T79c0ff0Tb4b4b4;
Te6edf3URLTb4b4b4.Te6edf3revokeObjectURLTb4b4b4(Te6edf3urlTb4b4b4)Tb4b4b4;
Te6edf3canvasTb4b4b4.Te6edf3toBlobTb4b4b4(Tb4b4b4(Te6edf3blobTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3blobUrl Tff7b72= Te6edf3URLTb4b4b4.Te6edf3createObjectURLTb4b4b4(Te6edf3blobTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3iconCacheTb4b4b4[Te6edf3cacheKeyTb4b4b4] Tff7b72= Te6edf3blobUrlTb4b4b4;
Te6edf3resolveTb4b4b4(Te6edf3blobUrlTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4, Ta5d6ff"image/png"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Te6edf3imgTb4b4b4.Te6edf3onerror Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3abortControllerTb4b4b4.Te6edf3signalTb4b4b4.Te6edf3abortedTb4b4b4) Tb4b4b4{
Te6edf3URLTb4b4b4.Te6edf3revokeObjectURLTb4b4b4(Te6edf3urlTb4b4b4)Tb4b4b4;
Te6edf3resolveTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3URLTb4b4b4.Te6edf3revokeObjectURLTb4b4b4(Te6edf3urlTb4b4b4)Tb4b4b4;
Te6edf3canvasTb4b4b4.Te6edf3toBlobTb4b4b4(Tb4b4b4(Te6edf3blobTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3blobUrl Tff7b72= Te6edf3URLTb4b4b4.Te6edf3createObjectURLTb4b4b4(Te6edf3blobTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3iconCacheTb4b4b4[Te6edf3cacheKeyTb4b4b4] Tff7b72= Te6edf3blobUrlTb4b4b4;
Te6edf3resolveTb4b4b4(Te6edf3blobUrlTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4, Ta5d6ff"image/png"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Te6edf3imgTb4b4b4.Te6edf3src Tff7b72= Te6edf3urlTb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3getMdiIconSvgTb4b4b4(Te6edf3iconNameTb4b4b4, Te6edf3foregroundColorTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3mdiIconName Tff7b72=
Ta5d6ff"mdi" Tff7b72+
Te6edf3iconName
Tb4b4b4.Te6edf3splitTb4b4b4(Ta5d6ff"-"Tb4b4b4)
Tb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3wordTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72return Te6edf3wordTb4b4b4.Te6edf3charAtTb4b4b4(T79c0ff0Tb4b4b4)Tb4b4b4.Te6edf3toUpperCaseTb4b4b4(Tb4b4b4) Tff7b72+ Te6edf3wordTb4b4b4.Te6edf3sliceTb4b4b4(T79c0ff1Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)
Tb4b4b4.Te6edf3joinTb4b4b4(Ta5d6ff""Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3iconPath Tff7b72= Te6edf3mdiTb4b4b4[Te6edf3mdiIconNameTb4b4b4] Tff7b72|| Te6edf3mdiTb4b4b4[Ta5d6ff"mdiAccountOutline"Tb4b4b4]Tb4b4b4;
Tff7b72return Ta5d6ff`Ta5d6ff<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="Tffd700${Te6edf3foregroundColorTffd700}Ta5d6ff" d="Tffd700${Te6edf3iconPathTffd700}Ta5d6ff"/></svg>Ta5d6ff`Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3loadVisualiserDisplayPrefsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3localStorage Tff7b72!== Ta5d6ff"undefined"Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3localStorageTb4b4b4.Te6edf3getItemTb4b4b4(Ta5d6ff"meshchatx.visualiser.showDisabledInterfaces"Tb4b4b4) Tff7b72=== Ta5d6ff"true"Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3showDisabledInterfaces Tff7b72= Tff7b72trueTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3localStorageTb4b4b4.Te6edf3getItemTb4b4b4(Ta5d6ff"meshchatx.visualiser.showDiscoveredInterfaces"Tb4b4b4) Tff7b72=== Ta5d6ff"true"Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3showDiscoveredInterfaces Tff7b72= Tff7b72trueTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4{
T8b949e/* localStorage unavailable */
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3refreshPhysicsEnabledTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72const Te6edf3on Tff7b72=
Tff7b72thisTb4b4b4.Te6edf3enablePhysics Tff7b72&&
Tff7b72!Tff7b72thisTb4b4b4.Te6edf3enableOrbit Tff7b72&&
Tff7b72!Tff7b72thisTb4b4b4.Te6edf3enableBouncingBalls Tff7b72&&
Tff7b72!Tff7b72thisTb4b4b4.Te6edf3enableFallingSkies Tff7b72&&
Tff7b72!Tff7b72thisTb4b4b4.Te6edf3enableSnake Tff7b72&&
Tff7b72!Tff7b72thisTb4b4b4.Te6edf3enablePongTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3setOptionsTb4b4b4(Tb4b4b4{ Te6edf3physicsTff7b72: Tb4b4b4{ Te6edf3enabledTff7b72: Te6edf3on Tb4b4b4} Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3pickStablePositionTb4b4b4(Te6edf3idTb4b4b4, Te6edf3posByIdTb4b4b4, Te6edf3initialFnTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3prev Tff7b72= Te6edf3posByIdTb4b4b4[Te6edf3idTb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3prev Tff7b72&& Tffa657NumberTb4b4b4.Tffa657isFiniteTb4b4b4(Te6edf3prevTb4b4b4.Te6edf3xTb4b4b4) Tff7b72&& Tffa657NumberTb4b4b4.Tffa657isFiniteTb4b4b4(Te6edf3prevTb4b4b4.Te6edf3yTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4{ Te6edf3xTff7b72: Te6edf3prevTb4b4b4.Te6edf3xTb4b4b4, Te6edf3yTff7b72: Te6edf3prevTb4b4b4.Te6edf3y Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3v Tff7b72= Te6edf3initialFnTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3posByIdTb4b4b4[Te6edf3idTb4b4b4] Tff7b72= Tb4b4b4{ Te6edf3xTff7b72: Te6edf3vTb4b4b4.Te6edf3xTb4b4b4, Te6edf3yTff7b72: Te6edf3vTb4b4b4.Te6edf3y Tb4b4b4}Tb4b4b4;
Tff7b72return Te6edf3vTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3edgeHiddenForModeTb4b4b4(Te6edf3peerNodeIdTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3enableBouncingBalls Tff7b72|| Tff7b72thisTb4b4b4.Te6edf3enableSnake Tff7b72|| Tff7b72thisTb4b4b4.Te6edf3enablePongTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(
Te6edf3peerNodeId Tff7b72!= Tff7b72null Tff7b72&&
Tff7b72thisTb4b4b4.Te6edf3enableFallingSkies Tff7b72&&
Tff7b72thisTb4b4b4.Te6edf3_fallingPendingIds Tff7b72&&
Tff7b72thisTb4b4b4.Te6edf3_fallingPendingIdsTb4b4b4.Te6edf3hasTb4b4b4(Te6edf3peerNodeIdTb4b4b4)
Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4}
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3edgesHiddenForOverlayGamesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3enableBouncingBalls Tff7b72|| Tff7b72thisTb4b4b4.Te6edf3enableSnake Tff7b72|| Tff7b72thisTb4b4b4.Te6edf3enablePongTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3startOrbitTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopOrbitTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopBouncingBallsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopSnakeTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopPongTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3refreshPhysicsEnabledTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3nodeIds Tff7b72= Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3getIdsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3positions Tff7b72= Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3getPositionsTb4b4b4(Te6edf3nodeIdsTb4b4b4) Tff7b72|| Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tff7b72const Te6edf3mePos Tff7b72= Te6edf3positionsTb4b4b4[Ta5d6ff"me"Tb4b4b4] Tff7b72|| Tb4b4b4{ Te6edf3xTff7b72: T79c0ff0Tb4b4b4, Te6edf3yTff7b72: T79c0ff0 Tb4b4b4}Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_orbitAroundMe Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_orbitAroundIface Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3id Tff7b72of Te6edf3nodeIdsTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3id Tff7b72=== Ta5d6ff"me"Tb4b4b4) Tff7b72continueTb4b4b4;
Tff7b72const Te6edf3n Tff7b72= Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3getTb4b4b4(Te6edf3idTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3n Tff7b72|| Tff7b72!Te6edf3nTb4b4b4.Te6edf3groupTb4b4b4) Tff7b72continueTb4b4b4;
Tff7b72const Te6edf3pos Tff7b72= Te6edf3positionsTb4b4b4[Te6edf3idTb4b4b4] Tff7b72|| Tb4b4b4{ Te6edf3xTff7b72: Te6edf3mePosTb4b4b4.Te6edf3xTb4b4b4, Te6edf3yTff7b72: Te6edf3mePosTb4b4b4.Te6edf3y Tb4b4b4}Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3nTb4b4b4.Te6edf3group Tff7b72=== Ta5d6ff"interface" Tff7b72|| Te6edf3nTb4b4b4.Te6edf3group Tff7b72=== Ta5d6ff"discovered"Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3dx Tff7b72= Te6edf3posTb4b4b4.Te6edf3x Tff7b72- Te6edf3mePosTb4b4b4.Te6edf3xTb4b4b4;
Tff7b72const Te6edf3dy Tff7b72= Te6edf3posTb4b4b4.Te6edf3y Tff7b72- Te6edf3mePosTb4b4b4.Te6edf3yTb4b4b4;
Tff7b72const Te6edf3r Tff7b72= Tffa657MathTb4b4b4.Te6edf3hypotTb4b4b4(Te6edf3dxTb4b4b4, Te6edf3dyTb4b4b4) Tff7b72|| T79c0ff400Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_orbitAroundMeTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4{
Te6edf3idTb4b4b4,
Te6edf3radiusTff7b72: Te6edf3rTb4b4b4,
Te6edf3angleTff7b72: Tffa657MathTb4b4b4.Te6edf3atan2Tb4b4b4(Te6edf3dyTb4b4b4, Te6edf3dxTb4b4b4)Tb4b4b4,
Te6edf3speedTff7b72: Tb4b4b4(T79c0ff0.0012 Tff7b72+ Tffa657MathTb4b4b4.Te6edf3randomTb4b4b4(Tb4b4b4) Tff7b72* T79c0ff0.0024Tb4b4b4) Tff7b72* Tb4b4b4(Tffa657MathTb4b4b4.Te6edf3randomTb4b4b4(Tb4b4b4) Tff7b72> T79c0ff0.5 Tff7b72? T79c0ff1 Tff7b72: Tff7b72-T79c0ff1Tb4b4b4)Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3nTb4b4b4.Te6edf3group Tff7b72=== Ta5d6ff"announce" Tff7b72&& Te6edf3nTb4b4b4.Te6edf3_parentInterfaceTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3parentId Tff7b72= Te6edf3nTb4b4b4.Te6edf3_parentInterfaceTb4b4b4;
Tff7b72const Te6edf3pPos Tff7b72= Te6edf3positionsTb4b4b4[Te6edf3parentIdTb4b4b4] Tff7b72|| Te6edf3mePosTb4b4b4;
Tff7b72const Te6edf3dx Tff7b72= Te6edf3posTb4b4b4.Te6edf3x Tff7b72- Te6edf3pPosTb4b4b4.Te6edf3xTb4b4b4;
Tff7b72const Te6edf3dy Tff7b72= Te6edf3posTb4b4b4.Te6edf3y Tff7b72- Te6edf3pPosTb4b4b4.Te6edf3yTb4b4b4;
Tff7b72const Te6edf3r Tff7b72= Tffa657MathTb4b4b4.Te6edf3hypotTb4b4b4(Te6edf3dxTb4b4b4, Te6edf3dyTb4b4b4) Tff7b72|| T79c0ff140Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_orbitAroundIfaceTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4{
Te6edf3idTb4b4b4,
Te6edf3parentIdTb4b4b4,
Te6edf3radiusTff7b72: Te6edf3rTb4b4b4,
Te6edf3angleTff7b72: Tffa657MathTb4b4b4.Te6edf3atan2Tb4b4b4(Te6edf3dyTb4b4b4, Te6edf3dxTb4b4b4)Tb4b4b4,
Te6edf3speedTff7b72: Tb4b4b4(T79c0ff0.002 Tff7b72+ Tffa657MathTb4b4b4.Te6edf3randomTb4b4b4(Tb4b4b4) Tff7b72* T79c0ff0.004Tb4b4b4) Tff7b72* Tb4b4b4(Tffa657MathTb4b4b4.Te6edf3randomTb4b4b4(Tb4b4b4) Tff7b72> T79c0ff0.5 Tff7b72? T79c0ff1 Tff7b72: Tff7b72-T79c0ff1Tb4b4b4)Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72const Te6edf3animate Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3enableOrbitTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72const Te6edf3meP Tff7b72= Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3getPositionsTb4b4b4(Tb4b4b4[Ta5d6ff"me"Tb4b4b4]Tb4b4b4)Tb4b4b4[Ta5d6ff"me"Tb4b4b4] Tff7b72|| Tb4b4b4{ Te6edf3xTff7b72: T79c0ff0Tb4b4b4, Te6edf3yTff7b72: T79c0ff0 Tb4b4b4}Tb4b4b4;
Tff7b72const Te6edf3ifacePos Tff7b72= Tb4b4b4{ Te6edf3meTff7b72: Te6edf3meP Tb4b4b4}Tb4b4b4;
Tff7b72const Te6edf3batch Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3data Tff7b72of Tff7b72thisTb4b4b4.Te6edf3_orbitAroundMeTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3dataTb4b4b4.Te6edf3id Tff7b72=== Tff7b72thisTb4b4b4.Te6edf3_draggingNodeIdTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3p Tff7b72= Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3getPositionsTb4b4b4(Tb4b4b4[Te6edf3dataTb4b4b4.Te6edf3idTb4b4b4]Tb4b4b4)Tb4b4b4[Te6edf3dataTb4b4b4.Te6edf3idTb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3pTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3dx Tff7b72= Te6edf3pTb4b4b4.Te6edf3x Tff7b72- Te6edf3mePTb4b4b4.Te6edf3xTb4b4b4;
Tff7b72const Te6edf3dy Tff7b72= Te6edf3pTb4b4b4.Te6edf3y Tff7b72- Te6edf3mePTb4b4b4.Te6edf3yTb4b4b4;
Te6edf3dataTb4b4b4.Te6edf3radius Tff7b72= Tffa657MathTb4b4b4.Te6edf3hypotTb4b4b4(Te6edf3dxTb4b4b4, Te6edf3dyTb4b4b4) Tff7b72|| Te6edf3dataTb4b4b4.Te6edf3radiusTb4b4b4;
Te6edf3dataTb4b4b4.Te6edf3angle Tff7b72= Tffa657MathTb4b4b4.Te6edf3atan2Tb4b4b4(Te6edf3dyTb4b4b4, Te6edf3dxTb4b4b4)Tb4b4b4;
Te6edf3ifacePosTb4b4b4[Te6edf3dataTb4b4b4.Te6edf3idTb4b4b4] Tff7b72= Te6edf3pTb4b4b4;
Tb4b4b4}
Tff7b72continueTb4b4b4;
Tb4b4b4}
Te6edf3dataTb4b4b4.Te6edf3angle Tff7b72+= Te6edf3dataTb4b4b4.Te6edf3speedTb4b4b4;
Tff7b72const Te6edf3x Tff7b72= Te6edf3mePTb4b4b4.Te6edf3x Tff7b72+ Tffa657MathTb4b4b4.Te6edf3cosTb4b4b4(Te6edf3dataTb4b4b4.Te6edf3angleTb4b4b4) Tff7b72* Te6edf3dataTb4b4b4.Te6edf3radiusTb4b4b4;
Tff7b72const Te6edf3y Tff7b72= Te6edf3mePTb4b4b4.Te6edf3y Tff7b72+ Tffa657MathTb4b4b4.Te6edf3sinTb4b4b4(Te6edf3dataTb4b4b4.Te6edf3angleTb4b4b4) Tff7b72* Te6edf3dataTb4b4b4.Te6edf3radiusTb4b4b4;
Te6edf3batchTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4{ Te6edf3idTff7b72: Te6edf3dataTb4b4b4.Te6edf3idTb4b4b4, Te6edf3xTb4b4b4, Te6edf3y Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3ifacePosTb4b4b4[Te6edf3dataTb4b4b4.Te6edf3idTb4b4b4] Tff7b72= Tb4b4b4{ Te6edf3xTb4b4b4, Te6edf3y Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3batchTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3updateTb4b4b4(Te6edf3batchTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3annBatch Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3data Tff7b72of Tff7b72thisTb4b4b4.Te6edf3_orbitAroundIfaceTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3dataTb4b4b4.Te6edf3id Tff7b72=== Tff7b72thisTb4b4b4.Te6edf3_draggingNodeIdTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3p Tff7b72= Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3getPositionsTb4b4b4(Tb4b4b4[Te6edf3dataTb4b4b4.Te6edf3idTb4b4b4]Tb4b4b4)Tb4b4b4[Te6edf3dataTb4b4b4.Te6edf3idTb4b4b4]Tb4b4b4;
Tff7b72const Te6edf3parent Tff7b72=
Te6edf3ifacePosTb4b4b4[Te6edf3dataTb4b4b4.Te6edf3parentIdTb4b4b4] Tff7b72|| Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3getPositionsTb4b4b4(Tb4b4b4[Te6edf3dataTb4b4b4.Te6edf3parentIdTb4b4b4]Tb4b4b4)Tb4b4b4[Te6edf3dataTb4b4b4.Te6edf3parentIdTb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3p Tff7b72&& Te6edf3parentTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3dx Tff7b72= Te6edf3pTb4b4b4.Te6edf3x Tff7b72- Te6edf3parentTb4b4b4.Te6edf3xTb4b4b4;
Tff7b72const Te6edf3dy Tff7b72= Te6edf3pTb4b4b4.Te6edf3y Tff7b72- Te6edf3parentTb4b4b4.Te6edf3yTb4b4b4;
Te6edf3dataTb4b4b4.Te6edf3radius Tff7b72= Tffa657MathTb4b4b4.Te6edf3hypotTb4b4b4(Te6edf3dxTb4b4b4, Te6edf3dyTb4b4b4) Tff7b72|| Te6edf3dataTb4b4b4.Te6edf3radiusTb4b4b4;
Te6edf3dataTb4b4b4.Te6edf3angle Tff7b72= Tffa657MathTb4b4b4.Te6edf3atan2Tb4b4b4(Te6edf3dyTb4b4b4, Te6edf3dxTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72continueTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3parent Tff7b72=
Te6edf3ifacePosTb4b4b4[Te6edf3dataTb4b4b4.Te6edf3parentIdTb4b4b4] Tff7b72|| Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3getPositionsTb4b4b4(Tb4b4b4[Te6edf3dataTb4b4b4.Te6edf3parentIdTb4b4b4]Tb4b4b4)Tb4b4b4[Te6edf3dataTb4b4b4.Te6edf3parentIdTb4b4b4] Tff7b72|| Te6edf3mePTb4b4b4;
Te6edf3dataTb4b4b4.Te6edf3angle Tff7b72+= Te6edf3dataTb4b4b4.Te6edf3speedTb4b4b4;
Te6edf3annBatchTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4{
Te6edf3idTff7b72: Te6edf3dataTb4b4b4.Te6edf3idTb4b4b4,
Te6edf3xTff7b72: Te6edf3parentTb4b4b4.Te6edf3x Tff7b72+ Tffa657MathTb4b4b4.Te6edf3cosTb4b4b4(Te6edf3dataTb4b4b4.Te6edf3angleTb4b4b4) Tff7b72* Te6edf3dataTb4b4b4.Te6edf3radiusTb4b4b4,
Te6edf3yTff7b72: Te6edf3parentTb4b4b4.Te6edf3y Tff7b72+ Tffa657MathTb4b4b4.Te6edf3sinTb4b4b4(Te6edf3dataTb4b4b4.Te6edf3angleTb4b4b4) Tff7b72* Te6edf3dataTb4b4b4.Te6edf3radiusTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3annBatchTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3updateTb4b4b4(Te6edf3annBatchTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3orbitAnimationFrame Tff7b72= Te6edf3requestAnimationFrameTb4b4b4(Te6edf3animateTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3orbitAnimationFrame Tff7b72= Te6edf3requestAnimationFrameTb4b4b4(Te6edf3animateTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3stopOrbitTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3orbitAnimationFrameTb4b4b4) Tb4b4b4{
Te6edf3cancelAnimationFrameTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3orbitAnimationFrameTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3orbitAnimationFrame Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3_orbitAroundMe Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_orbitAroundIface Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3refreshPhysicsEnabledTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3startFallingSkiesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopSnakeTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopPongTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3refreshPhysicsEnabledTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3_fallingById Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3_fallingByIdTb4b4b4.Te6edf3size Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3scheduleFallingTickTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3stopFallingSkiesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3fallingSkiesAnimationFrameTb4b4b4) Tb4b4b4{
Te6edf3cancelAnimationFrameTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3fallingSkiesAnimationFrameTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3fallingSkiesAnimationFrame Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3_fallingById Tff7b72= Tff7b72new Tffa657MapTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_fallingPendingIds Tff7b72= Tff7b72new Tffa657SetTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3refreshPhysicsEnabledTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3processVisualizationTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3scheduleFallingTickTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3enableFallingSkies Tff7b72|| Tff7b72!Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3fallingSkiesAnimationFrame Tff7b72!= Tff7b72nullTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72const Te6edf3tick Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3fallingSkiesAnimationFrame Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3enableFallingSkies Tff7b72|| Tff7b72!Tff7b72thisTb4b4b4.Te6edf3_fallingById Tff7b72|| Tff7b72thisTb4b4b4.Te6edf3_fallingByIdTb4b4b4.Te6edf3size Tff7b72=== T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3gravity Tff7b72= T79c0ff0.55Tb4b4b4;
Tff7b72const Te6edf3updates Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72const Te6edf3done Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Tb4b4b4[Te6edf3idTb4b4b4, Te6edf3stTb4b4b4] Tff7b72of Tff7b72thisTb4b4b4.Te6edf3_fallingByIdTb4b4b4) Tb4b4b4{
Te6edf3stTb4b4b4.Te6edf3vy Tff7b72+= Te6edf3gravityTb4b4b4;
Te6edf3stTb4b4b4.Te6edf3y Tff7b72+= Te6edf3stTb4b4b4.Te6edf3vyTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3stTb4b4b4.Te6edf3y Tff7b72>= Te6edf3stTb4b4b4.Te6edf3ty Tff7b72- T79c0ff2Tb4b4b4) Tb4b4b4{
Te6edf3updatesTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4{ Te6edf3idTb4b4b4, Te6edf3xTff7b72: Te6edf3stTb4b4b4.Te6edf3txTb4b4b4, Te6edf3yTff7b72: Te6edf3stTb4b4b4.Te6edf3ty Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3doneTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4{ Te6edf3idTb4b4b4, Te6edf3edgeIdsTff7b72: Te6edf3stTb4b4b4.Te6edf3edgeIds Tff7b72|| Tb4b4b4[Tb4b4b4] Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3updatesTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4{ Te6edf3idTb4b4b4, Te6edf3xTff7b72: Te6edf3stTb4b4b4.Te6edf3txTb4b4b4, Te6edf3yTff7b72: Te6edf3stTb4b4b4.Te6edf3y Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3updatesTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3updateTb4b4b4(Te6edf3updatesTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3edgeUnhide Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Tb4b4b4{ Te6edf3idTb4b4b4, Te6edf3edgeIds Tb4b4b4} Tff7b72of Te6edf3doneTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3_fallingByIdTb4b4b4.Tff7b72deleteTb4b4b4(Te6edf3idTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_fallingPendingIdsTb4b4b4.Tff7b72deleteTb4b4b4(Te6edf3idTb4b4b4)Tb4b4b4;
Te6edf3edgeUnhideTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4...Te6edf3edgeIdsTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3edgeUnhideTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3edgesTb4b4b4.Te6edf3updateTb4b4b4(Te6edf3edgeUnhideTb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3eidTb4b4b4) Tb4b4b4=> Tb4b4b4(Tb4b4b4{ Te6edf3idTff7b72: Te6edf3eidTb4b4b4, Te6edf3hiddenTff7b72: Tff7b72thisTb4b4b4.Te6edf3enableBouncingBalls Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3_fallingByIdTb4b4b4.Te6edf3size Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3fallingSkiesAnimationFrame Tff7b72= Te6edf3requestAnimationFrameTb4b4b4(Te6edf3tickTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3fallingSkiesAnimationFrame Tff7b72= Te6edf3requestAnimationFrameTb4b4b4(Te6edf3tickTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3startBouncingBallsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopBouncingBallsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopOrbitTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopSnakeTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopPongTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
T8b949e// Disable physics
Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3setOptionsTb4b4b4(Tb4b4b4{ Te6edf3physicsTff7b72: Tb4b4b4{ Te6edf3enabledTff7b72: Tff7b72false Tb4b4b4} Tb4b4b4}Tb4b4b4)Tb4b4b4;
T8b949e// Hide edges
Tff7b72const Te6edf3edges Tff7b72= Tff7b72thisTb4b4b4.Te6edf3edgesTb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3updatedEdges Tff7b72= Te6edf3edgesTb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3edgeTb4b4b4) Tb4b4b4=> Tb4b4b4(Tb4b4b4{ Te6edf3idTff7b72: Te6edf3edgeTb4b4b4.Te6edf3idTb4b4b4, Te6edf3hiddenTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3edgesTb4b4b4.Te6edf3updateTb4b4b4(Te6edf3updatedEdgesTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3container Tff7b72= Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff"network"Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3containerTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72const Te6edf3width Tff7b72= Te6edf3containerTb4b4b4.Te6edf3clientWidthTb4b4b4;
Tff7b72const Te6edf3height Tff7b72= Te6edf3containerTb4b4b4.Te6edf3clientHeightTb4b4b4;
Tff7b72const Te6edf3scale Tff7b72= Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3getScaleTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3viewPosition Tff7b72= Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3getViewPositionTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3halfWidth Tff7b72= Te6edf3width Tff7b72/ Te6edf3scale Tff7b72/ T79c0ff2Tb4b4b4;
Tff7b72const Te6edf3halfHeight Tff7b72= Te6edf3height Tff7b72/ Te6edf3scale Tff7b72/ T79c0ff2Tb4b4b4;
Tff7b72const Te6edf3topBound Tff7b72= Te6edf3viewPositionTb4b4b4.Te6edf3y Tff7b72- Te6edf3halfHeightTb4b4b4;
Tff7b72const Te6edf3leftBound Tff7b72= Te6edf3viewPositionTb4b4b4.Te6edf3x Tff7b72- Te6edf3halfWidthTb4b4b4;
Tff7b72const Te6edf3rightBound Tff7b72= Te6edf3viewPositionTb4b4b4.Te6edf3x Tff7b72+ Te6edf3halfWidthTb4b4b4;
Tff7b72const Te6edf3nodeIds Tff7b72= Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3getIdsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_bouncingNodes Tff7b72= Te6edf3nodeIdsTb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3idTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3node Tff7b72= Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3getTb4b4b4(Te6edf3idTb4b4b4)Tb4b4b4;
T8b949e// Get current canvas position if available, otherwise randomize
Tff7b72const Te6edf3currentPos Tff7b72= Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3getPositionsTb4b4b4(Tb4b4b4[Te6edf3idTb4b4b4]Tb4b4b4)Tb4b4b4[Te6edf3idTb4b4b4] Tff7b72|| Tb4b4b4{
Te6edf3xTff7b72: Te6edf3leftBound Tff7b72+ Tffa657MathTb4b4b4.Te6edf3randomTb4b4b4(Tb4b4b4) Tff7b72* Tb4b4b4(Te6edf3rightBound Tff7b72- Te6edf3leftBoundTb4b4b4)Tb4b4b4,
Te6edf3yTff7b72: Te6edf3topBound Tff7b72- Tffa657MathTb4b4b4.Te6edf3randomTb4b4b4(Tb4b4b4) Tff7b72* T79c0ff800 Tff7b72- T79c0ff100Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tff7b72return Tb4b4b4{
Te6edf3idTff7b72: Te6edf3idTb4b4b4,
Te6edf3xTff7b72: Te6edf3currentPosTb4b4b4.Te6edf3xTb4b4b4,
Te6edf3yTff7b72: Te6edf3currentPosTb4b4b4.Te6edf3y Tff7b72< Te6edf3topBound Tff7b72? Te6edf3currentPosTb4b4b4.Te6edf3y Tff7b72: Te6edf3topBound Tff7b72- Tffa657MathTb4b4b4.Te6edf3randomTb4b4b4(Tb4b4b4) Tff7b72* T79c0ff800 Tff7b72- T79c0ff100Tb4b4b4, T8b949e// ensure they start above or at their current high pos
Te6edf3vxTff7b72: Tb4b4b4(Tffa657MathTb4b4b4.Te6edf3randomTb4b4b4(Tb4b4b4) Tff7b72- T79c0ff0.5Tb4b4b4) Tff7b72* T79c0ff15Tb4b4b4,
Te6edf3vyTff7b72: Tffa657MathTb4b4b4.Te6edf3randomTb4b4b4(Tb4b4b4) Tff7b72* T79c0ff10Tb4b4b4,
Te6edf3radiusTff7b72: Tb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3size Tff7b72|| T79c0ff25Tb4b4b4) Tff7b72* T79c0ff1.5Tb4b4b4, T8b949e// approximate collision radius
Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3gravity Tff7b72= T79c0ff0.45Tb4b4b4;
Tff7b72const Te6edf3friction Tff7b72= T79c0ff0.99Tb4b4b4;
Tff7b72const Te6edf3bounce Tff7b72= T79c0ff0.75Tb4b4b4;
Tff7b72const Te6edf3animate Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3enableBouncingBallsTb4b4b4) Tff7b72returnTb4b4b4;
T8b949e// Re-calculate boundaries in case of zoom/pan
Tff7b72const Te6edf3scale Tff7b72= Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3getScaleTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3viewPosition Tff7b72= Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3getViewPositionTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3halfWidth Tff7b72= Te6edf3width Tff7b72/ Te6edf3scale Tff7b72/ T79c0ff2Tb4b4b4;
Tff7b72const Te6edf3halfHeight Tff7b72= Te6edf3height Tff7b72/ Te6edf3scale Tff7b72/ T79c0ff2Tb4b4b4;
Tff7b72const Te6edf3bottomBound Tff7b72= Te6edf3viewPositionTb4b4b4.Te6edf3y Tff7b72+ Te6edf3halfHeightTb4b4b4;
Tff7b72const Te6edf3leftBound Tff7b72= Te6edf3viewPositionTb4b4b4.Te6edf3x Tff7b72- Te6edf3halfWidthTb4b4b4;
Tff7b72const Te6edf3rightBound Tff7b72= Te6edf3viewPositionTb4b4b4.Te6edf3x Tff7b72+ Te6edf3halfWidthTb4b4b4;
Tff7b72const Te6edf3updates Tff7b72= Tff7b72thisTb4b4b4.Te6edf3_bouncingNodesTb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3nodeTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3id Tff7b72=== Tff7b72thisTb4b4b4.Te6edf3_draggingNodeIdTb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4{
Te6edf3idTff7b72: Te6edf3nodeTb4b4b4.Te6edf3idTb4b4b4,
Te6edf3xTff7b72: Te6edf3nodeTb4b4b4.Te6edf3xTb4b4b4,
Te6edf3yTff7b72: Te6edf3nodeTb4b4b4.Te6edf3yTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Te6edf3nodeTb4b4b4.Te6edf3vy Tff7b72+= Te6edf3gravityTb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3vx Tff7b72*= Te6edf3frictionTb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3vy Tff7b72*= Te6edf3frictionTb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3x Tff7b72+= Te6edf3nodeTb4b4b4.Te6edf3vxTb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3y Tff7b72+= Te6edf3nodeTb4b4b4.Te6edf3vyTb4b4b4;
T8b949e// Bounce off bottom
Tff7b72if Tb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3y Tff7b72+ Te6edf3nodeTb4b4b4.Te6edf3radius Tff7b72> Te6edf3bottomBoundTb4b4b4) Tb4b4b4{
Te6edf3nodeTb4b4b4.Te6edf3y Tff7b72= Te6edf3bottomBound Tff7b72- Te6edf3nodeTb4b4b4.Te6edf3radiusTb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3vy Tff7b72*= Tff7b72-Te6edf3bounceTb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3vx Tff7b72+= Tb4b4b4(Tffa657MathTb4b4b4.Te6edf3randomTb4b4b4(Tb4b4b4) Tff7b72- T79c0ff0.5Tb4b4b4) Tff7b72* T79c0ff4Tb4b4b4;
Tb4b4b4}
T8b949e// Bounce off sides
Tff7b72if Tb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3x Tff7b72- Te6edf3nodeTb4b4b4.Te6edf3radius Tff7b72< Te6edf3leftBoundTb4b4b4) Tb4b4b4{
Te6edf3nodeTb4b4b4.Te6edf3x Tff7b72= Te6edf3leftBound Tff7b72+ Te6edf3nodeTb4b4b4.Te6edf3radiusTb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3vx Tff7b72*= Tff7b72-Te6edf3bounceTb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3x Tff7b72+ Te6edf3nodeTb4b4b4.Te6edf3radius Tff7b72> Te6edf3rightBoundTb4b4b4) Tb4b4b4{
Te6edf3nodeTb4b4b4.Te6edf3x Tff7b72= Te6edf3rightBound Tff7b72- Te6edf3nodeTb4b4b4.Te6edf3radiusTb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3vx Tff7b72*= Tff7b72-Te6edf3bounceTb4b4b4;
Tb4b4b4}
Tff7b72return Tb4b4b4{
Te6edf3idTff7b72: Te6edf3nodeTb4b4b4.Te6edf3idTb4b4b4,
Te6edf3xTff7b72: Te6edf3nodeTb4b4b4.Te6edf3xTb4b4b4,
Te6edf3yTff7b72: Te6edf3nodeTb4b4b4.Te6edf3yTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3updateTb4b4b4(Te6edf3updatesTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3bouncingBallsAnimationFrame Tff7b72= Te6edf3requestAnimationFrameTb4b4b4(Te6edf3animateTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3bouncingBallsAnimationFrame Tff7b72= Te6edf3requestAnimationFrameTb4b4b4(Te6edf3animateTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3stopBouncingBallsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3bouncingBallsAnimationFrameTb4b4b4) Tb4b4b4{
Te6edf3cancelAnimationFrameTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3bouncingBallsAnimationFrameTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3bouncingBallsAnimationFrame Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3edges Tff7b72= Tff7b72thisTb4b4b4.Te6edf3edgesTb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3updatedEdges Tff7b72= Te6edf3edgesTb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3edgeTb4b4b4) Tb4b4b4=> Tb4b4b4(Tb4b4b4{ Te6edf3idTff7b72: Te6edf3edgeTb4b4b4.Te6edf3idTb4b4b4, Te6edf3hiddenTff7b72: Tff7b72false Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3edgesTb4b4b4.Te6edf3updateTb4b4b4(Te6edf3updatedEdgesTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3refreshPhysicsEnabledTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3getViewCanvasBoundsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3container Tff7b72= Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff"network"Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3container Tff7b72|| Tff7b72!Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4) Tff7b72return Tff7b72nullTb4b4b4;
Tff7b72const Te6edf3scale Tff7b72= Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3getScaleTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3vp Tff7b72= Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3getViewPositionTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3w Tff7b72= Te6edf3containerTb4b4b4.Te6edf3clientWidthTb4b4b4;
Tff7b72const Te6edf3h Tff7b72= Te6edf3containerTb4b4b4.Te6edf3clientHeightTb4b4b4;
Tff7b72const Te6edf3halfW Tff7b72= Te6edf3w Tff7b72/ Tb4b4b4(T79c0ff2 Tff7b72* Te6edf3scaleTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3halfH Tff7b72= Te6edf3h Tff7b72/ Tb4b4b4(T79c0ff2 Tff7b72* Te6edf3scaleTb4b4b4)Tb4b4b4;
Tff7b72return Tb4b4b4{
Te6edf3leftTff7b72: Te6edf3vpTb4b4b4.Te6edf3x Tff7b72- Te6edf3halfWTb4b4b4,
Te6edf3rightTff7b72: Te6edf3vpTb4b4b4.Te6edf3x Tff7b72+ Te6edf3halfWTb4b4b4,
Te6edf3topTff7b72: Te6edf3vpTb4b4b4.Te6edf3y Tff7b72- Te6edf3halfHTb4b4b4,
Te6edf3bottomTff7b72: Te6edf3vpTb4b4b4.Te6edf3y Tff7b72+ Te6edf3halfHTb4b4b4,
Te6edf3scaleTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3attachGameKeyListenersTb4b4b4(Te6edf3modeTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3detachGameKeyListenersTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_gameKeyMode Tff7b72= Te6edf3modeTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_snakeKeys Tff7b72= Tb4b4b4{ Te6edf3uTff7b72: T79c0ff0Tb4b4b4, Te6edf3dTff7b72: T79c0ff0Tb4b4b4, Te6edf3lTff7b72: T79c0ff0Tb4b4b4, Te6edf3rTff7b72: T79c0ff0Tb4b4b4, Te6edf3wTff7b72: T79c0ff0Tb4b4b4, Te6edf3sTff7b72: T79c0ff0 Tb4b4b4}Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_onGameKeyDown Tff7b72= Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3tag Tff7b72= Tb4b4b4(Te6edf3eTb4b4b4.Te6edf3target Tff7b72&& Te6edf3eTb4b4b4.Te6edf3targetTb4b4b4.Te6edf3tagNameTb4b4b4) Tff7b72|| Ta5d6ff""Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3tag Tff7b72=== Ta5d6ff"INPUT" Tff7b72|| Te6edf3tag Tff7b72=== Ta5d6ff"TEXTAREA" Tff7b72|| Te6edf3tag Tff7b72=== Ta5d6ff"SELECT"Tb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3mode Tff7b72=== Ta5d6ff"snake"Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tb4b4b4[Ta5d6ff"ArrowUp"Tb4b4b4, Ta5d6ff"w"Tb4b4b4, Ta5d6ff"W"Tb4b4b4]Tb4b4b4.Te6edf3includesTb4b4b4(Te6edf3eTb4b4b4.Te6edf3keyTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3eTb4b4b4.Te6edf3preventDefaultTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_snakeKeysTb4b4b4.Te6edf3u Tff7b72= T79c0ff1Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tb4b4b4[Ta5d6ff"ArrowDown"Tb4b4b4, Ta5d6ff"s"Tb4b4b4, Ta5d6ff"S"Tb4b4b4]Tb4b4b4.Te6edf3includesTb4b4b4(Te6edf3eTb4b4b4.Te6edf3keyTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3eTb4b4b4.Te6edf3preventDefaultTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_snakeKeysTb4b4b4.Te6edf3d Tff7b72= T79c0ff1Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tb4b4b4[Ta5d6ff"ArrowLeft"Tb4b4b4, Ta5d6ff"a"Tb4b4b4, Ta5d6ff"A"Tb4b4b4]Tb4b4b4.Te6edf3includesTb4b4b4(Te6edf3eTb4b4b4.Te6edf3keyTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3eTb4b4b4.Te6edf3preventDefaultTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_snakeKeysTb4b4b4.Te6edf3l Tff7b72= T79c0ff1Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tb4b4b4[Ta5d6ff"ArrowRight"Tb4b4b4, Ta5d6ff"d"Tb4b4b4, Ta5d6ff"D"Tb4b4b4]Tb4b4b4.Te6edf3includesTb4b4b4(Te6edf3eTb4b4b4.Te6edf3keyTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3eTb4b4b4.Te6edf3preventDefaultTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_snakeKeysTb4b4b4.Te6edf3r Tff7b72= T79c0ff1Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3mode Tff7b72=== Ta5d6ff"pong"Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3eTb4b4b4.Te6edf3key Tff7b72=== Ta5d6ff"w" Tff7b72|| Te6edf3eTb4b4b4.Te6edf3key Tff7b72=== Ta5d6ff"W"Tb4b4b4) Tb4b4b4{
Te6edf3eTb4b4b4.Te6edf3preventDefaultTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_snakeKeysTb4b4b4.Te6edf3w Tff7b72= T79c0ff1Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3eTb4b4b4.Te6edf3key Tff7b72=== Ta5d6ff"s" Tff7b72|| Te6edf3eTb4b4b4.Te6edf3key Tff7b72=== Ta5d6ff"S"Tb4b4b4) Tb4b4b4{
Te6edf3eTb4b4b4.Te6edf3preventDefaultTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_snakeKeysTb4b4b4.Te6edf3s Tff7b72= T79c0ff1Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_onGameKeyUp Tff7b72=
Te6edf3mode Tff7b72=== Ta5d6ff"snake"
Tff7b72? Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Tb4b4b4[Ta5d6ff"ArrowUp"Tb4b4b4, Ta5d6ff"w"Tb4b4b4, Ta5d6ff"W"Tb4b4b4]Tb4b4b4.Te6edf3includesTb4b4b4(Te6edf3eTb4b4b4.Te6edf3keyTb4b4b4)Tb4b4b4) Tff7b72thisTb4b4b4.Te6edf3_snakeKeysTb4b4b4.Te6edf3u Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72if Tb4b4b4(Tb4b4b4[Ta5d6ff"ArrowDown"Tb4b4b4, Ta5d6ff"s"Tb4b4b4, Ta5d6ff"S"Tb4b4b4]Tb4b4b4.Te6edf3includesTb4b4b4(Te6edf3eTb4b4b4.Te6edf3keyTb4b4b4)Tb4b4b4) Tff7b72thisTb4b4b4.Te6edf3_snakeKeysTb4b4b4.Te6edf3d Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72if Tb4b4b4(Tb4b4b4[Ta5d6ff"ArrowLeft"Tb4b4b4, Ta5d6ff"a"Tb4b4b4, Ta5d6ff"A"Tb4b4b4]Tb4b4b4.Te6edf3includesTb4b4b4(Te6edf3eTb4b4b4.Te6edf3keyTb4b4b4)Tb4b4b4) Tff7b72thisTb4b4b4.Te6edf3_snakeKeysTb4b4b4.Te6edf3l Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72if Tb4b4b4(Tb4b4b4[Ta5d6ff"ArrowRight"Tb4b4b4, Ta5d6ff"d"Tb4b4b4, Ta5d6ff"D"Tb4b4b4]Tb4b4b4.Te6edf3includesTb4b4b4(Te6edf3eTb4b4b4.Te6edf3keyTb4b4b4)Tb4b4b4) Tff7b72thisTb4b4b4.Te6edf3_snakeKeysTb4b4b4.Te6edf3r Tff7b72= T79c0ff0Tb4b4b4;
Tb4b4b4}
Tff7b72: Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3eTb4b4b4.Te6edf3key Tff7b72=== Ta5d6ff"w" Tff7b72|| Te6edf3eTb4b4b4.Te6edf3key Tff7b72=== Ta5d6ff"W"Tb4b4b4) Tff7b72thisTb4b4b4.Te6edf3_snakeKeysTb4b4b4.Te6edf3w Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3eTb4b4b4.Te6edf3key Tff7b72=== Ta5d6ff"s" Tff7b72|| Te6edf3eTb4b4b4.Te6edf3key Tff7b72=== Ta5d6ff"S"Tb4b4b4) Tff7b72thisTb4b4b4.Te6edf3_snakeKeysTb4b4b4.Te6edf3s Tff7b72= T79c0ff0Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Tffa657windowTb4b4b4.Te6edf3addEventListenerTb4b4b4(Ta5d6ff"keydown"Tb4b4b4, Tff7b72thisTb4b4b4.Te6edf3_onGameKeyDownTb4b4b4, Tff7b72trueTb4b4b4)Tb4b4b4;
Tffa657windowTb4b4b4.Te6edf3addEventListenerTb4b4b4(Ta5d6ff"keyup"Tb4b4b4, Tff7b72thisTb4b4b4.Te6edf3_onGameKeyUpTb4b4b4, Tff7b72trueTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3detachGameKeyListenersTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3_onGameKeyDownTb4b4b4) Tb4b4b4{
Tffa657windowTb4b4b4.Te6edf3removeEventListenerTb4b4b4(Ta5d6ff"keydown"Tb4b4b4, Tff7b72thisTb4b4b4.Te6edf3_onGameKeyDownTb4b4b4, Tff7b72trueTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_onGameKeyDown Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3_onGameKeyUpTb4b4b4) Tb4b4b4{
Tffa657windowTb4b4b4.Te6edf3removeEventListenerTb4b4b4(Ta5d6ff"keyup"Tb4b4b4, Tff7b72thisTb4b4b4.Te6edf3_onGameKeyUpTb4b4b4, Tff7b72trueTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_onGameKeyUp Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3_gameKeyMode Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3getPositionAlongTrailTb4b4b4(Te6edf3trailTb4b4b4, Te6edf3distBehindTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3trail Tff7b72|| Te6edf3trailTb4b4b4.Te6edf3length Tff7b72=== T79c0ff0Tb4b4b4) Tff7b72return Tb4b4b4{ Te6edf3xTff7b72: T79c0ff0Tb4b4b4, Te6edf3yTff7b72: T79c0ff0 Tb4b4b4}Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3trailTb4b4b4.Te6edf3length Tff7b72=== T79c0ff1Tb4b4b4) Tff7b72return Tb4b4b4{ Tb4b4b4...Te6edf3trailTb4b4b4[T79c0ff0Tb4b4b4] Tb4b4b4}Tb4b4b4;
Tff7b72let Te6edf3d Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72let Te6edf3i Tff7b72= Te6edf3trailTb4b4b4.Te6edf3length Tff7b72- T79c0ff1Tb4b4b4; Te6edf3i Tff7b72> T79c0ff0Tb4b4b4; Te6edf3iTff7b72--Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3p Tff7b72= Te6edf3trailTb4b4b4[Te6edf3iTb4b4b4]Tb4b4b4;
Tff7b72const Te6edf3q Tff7b72= Te6edf3trailTb4b4b4[Te6edf3i Tff7b72- T79c0ff1Tb4b4b4]Tb4b4b4;
Tff7b72const Te6edf3seg Tff7b72= Tffa657MathTb4b4b4.Te6edf3hypotTb4b4b4(Te6edf3pTb4b4b4.Te6edf3x Tff7b72- Te6edf3qTb4b4b4.Te6edf3xTb4b4b4, Te6edf3pTb4b4b4.Te6edf3y Tff7b72- Te6edf3qTb4b4b4.Te6edf3yTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3d Tff7b72+ Te6edf3seg Tff7b72>= Te6edf3distBehindTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3t Tff7b72= Te6edf3seg Tff7b72> T79c0ff0 Tff7b72? Tb4b4b4(Te6edf3distBehind Tff7b72- Te6edf3dTb4b4b4) Tff7b72/ Te6edf3seg Tff7b72: T79c0ff0Tb4b4b4;
Tff7b72return Tb4b4b4{ Te6edf3xTff7b72: Te6edf3pTb4b4b4.Te6edf3x Tff7b72+ Tb4b4b4(Te6edf3qTb4b4b4.Te6edf3x Tff7b72- Te6edf3pTb4b4b4.Te6edf3xTb4b4b4) Tff7b72* Te6edf3tTb4b4b4, Te6edf3yTff7b72: Te6edf3pTb4b4b4.Te6edf3y Tff7b72+ Tb4b4b4(Te6edf3qTb4b4b4.Te6edf3y Tff7b72- Te6edf3pTb4b4b4.Te6edf3yTb4b4b4) Tff7b72* Te6edf3t Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Te6edf3d Tff7b72+= Te6edf3segTb4b4b4;
Tb4b4b4}
Tff7b72return Tb4b4b4{ Tb4b4b4...Te6edf3trailTb4b4b4[T79c0ff0Tb4b4b4] Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3startSnakeTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopSnakeTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopPongTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopOrbitTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopBouncingBallsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopFallingSkiesTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3setOptionsTb4b4b4(Tb4b4b4{ Te6edf3physicsTff7b72: Tb4b4b4{ Te6edf3enabledTff7b72: Tff7b72false Tb4b4b4} Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3edges Tff7b72= Tff7b72thisTb4b4b4.Te6edf3edgesTb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3edgesTb4b4b4.Te6edf3updateTb4b4b4(Te6edf3edgesTb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3edgeTb4b4b4) Tb4b4b4=> Tb4b4b4(Tb4b4b4{ Te6edf3idTff7b72: Te6edf3edgeTb4b4b4.Te6edf3idTb4b4b4, Te6edf3hiddenTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3me Tff7b72= Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3getPositionsTb4b4b4(Tb4b4b4[Ta5d6ff"me"Tb4b4b4]Tb4b4b4)Tb4b4b4.Te6edf3me Tff7b72|| Tb4b4b4{ Te6edf3xTff7b72: T79c0ff0Tb4b4b4, Te6edf3yTff7b72: T79c0ff0 Tb4b4b4}Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_snakeVx Tff7b72= T79c0ff7Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_snakeVy Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_snakeHeadX Tff7b72= Te6edf3meTb4b4b4.Te6edf3xTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_snakeHeadY Tff7b72= Te6edf3meTb4b4b4.Te6edf3yTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_snakeTrail Tff7b72= Tb4b4b4[Tb4b4b4{ Te6edf3xTff7b72: Te6edf3meTb4b4b4.Te6edf3xTb4b4b4, Te6edf3yTff7b72: Te6edf3meTb4b4b4.Te6edf3y Tb4b4b4}Tb4b4b4]Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_snakeEatenIds Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_snakeFoodIds Tff7b72= Tff7b72new Tffa657SetTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3id Tff7b72of Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3getIdsTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3id Tff7b72!== Ta5d6ff"me"Tb4b4b4) Tff7b72thisTb4b4b4.Te6edf3_snakeFoodIdsTb4b4b4.Te6edf3addTb4b4b4(Te6edf3idTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3attachGameKeyListenersTb4b4b4(Ta5d6ff"snake"Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3infoTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"visualiser.snake_hint"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3speed Tff7b72= T79c0ff8Tb4b4b4;
Tff7b72const Te6edf3margin Tff7b72= T79c0ff40Tb4b4b4;
Tff7b72const Te6edf3headR Tff7b72= T79c0ff28Tb4b4b4;
Tff7b72const Te6edf3tailGap Tff7b72= T79c0ff42Tb4b4b4;
Tff7b72const Te6edf3tick Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3enableSnake Tff7b72|| Tff7b72!Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72const Te6edf3b Tff7b72= Tff7b72thisTb4b4b4.Te6edf3getViewCanvasBoundsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3bTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72let Te6edf3vx Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72let Te6edf3vy Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72const Te6edf3k Tff7b72= Tff7b72thisTb4b4b4.Te6edf3_snakeKeys Tff7b72|| Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3kTb4b4b4.Te6edf3uTb4b4b4) Te6edf3vy Tff7b72-= T79c0ff1Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3kTb4b4b4.Te6edf3dTb4b4b4) Te6edf3vy Tff7b72+= T79c0ff1Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3kTb4b4b4.Te6edf3lTb4b4b4) Te6edf3vx Tff7b72-= T79c0ff1Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3kTb4b4b4.Te6edf3rTb4b4b4) Te6edf3vx Tff7b72+= T79c0ff1Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3vx Tff7b72!== T79c0ff0 Tff7b72|| Te6edf3vy Tff7b72!== T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3len Tff7b72= Tffa657MathTb4b4b4.Te6edf3hypotTb4b4b4(Te6edf3vxTb4b4b4, Te6edf3vyTb4b4b4) Tff7b72|| T79c0ff1Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_snakeVx Tff7b72= Tb4b4b4(Te6edf3vx Tff7b72/ Te6edf3lenTb4b4b4) Tff7b72* Te6edf3speedTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_snakeVy Tff7b72= Tb4b4b4(Te6edf3vy Tff7b72/ Te6edf3lenTb4b4b4) Tff7b72* Te6edf3speedTb4b4b4;
Tb4b4b4}
Tff7b72let Te6edf3hx Tff7b72= Tff7b72thisTb4b4b4.Te6edf3_snakeHeadX Tff7b72+ Tff7b72thisTb4b4b4.Te6edf3_snakeVxTb4b4b4;
Tff7b72let Te6edf3hy Tff7b72= Tff7b72thisTb4b4b4.Te6edf3_snakeHeadY Tff7b72+ Tff7b72thisTb4b4b4.Te6edf3_snakeVyTb4b4b4;
Te6edf3hx Tff7b72= Tffa657MathTb4b4b4.Te6edf3maxTb4b4b4(Te6edf3bTb4b4b4.Te6edf3left Tff7b72+ Te6edf3marginTb4b4b4, Tffa657MathTb4b4b4.Te6edf3minTb4b4b4(Te6edf3bTb4b4b4.Te6edf3right Tff7b72- Te6edf3marginTb4b4b4, Te6edf3hxTb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3hy Tff7b72= Tffa657MathTb4b4b4.Te6edf3maxTb4b4b4(Te6edf3bTb4b4b4.Te6edf3top Tff7b72+ Te6edf3marginTb4b4b4, Tffa657MathTb4b4b4.Te6edf3minTb4b4b4(Te6edf3bTb4b4b4.Te6edf3bottom Tff7b72- Te6edf3marginTb4b4b4, Te6edf3hyTb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_snakeHeadX Tff7b72= Te6edf3hxTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_snakeHeadY Tff7b72= Te6edf3hyTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3updateTb4b4b4(Tb4b4b4[Tb4b4b4{ Te6edf3idTff7b72: Ta5d6ff"me"Tb4b4b4, Te6edf3xTff7b72: Te6edf3hxTb4b4b4, Te6edf3yTff7b72: Te6edf3hy Tb4b4b4}Tb4b4b4]Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3last Tff7b72= Tff7b72thisTb4b4b4.Te6edf3_snakeTrailTb4b4b4[Tff7b72thisTb4b4b4.Te6edf3_snakeTrailTb4b4b4.Te6edf3length Tff7b72- T79c0ff1Tb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3last Tff7b72|| Tffa657MathTb4b4b4.Te6edf3hypotTb4b4b4(Te6edf3hx Tff7b72- Te6edf3lastTb4b4b4.Te6edf3xTb4b4b4, Te6edf3hy Tff7b72- Te6edf3lastTb4b4b4.Te6edf3yTb4b4b4) Tff7b72> T79c0ff3Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3_snakeTrailTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4{ Te6edf3xTff7b72: Te6edf3hxTb4b4b4, Te6edf3yTff7b72: Te6edf3hy Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3_snakeTrailTb4b4b4.Te6edf3length Tff7b72> T79c0ff8000Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3_snakeTrailTb4b4b4.Te6edf3spliceTb4b4b4(T79c0ff0Tb4b4b4, T79c0ff1500Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72const Te6edf3updates Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72let Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Tff7b72thisTb4b4b4.Te6edf3_snakeEatenIdsTb4b4b4.Te6edf3lengthTb4b4b4; Te6edf3iTff7b72++Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3id Tff7b72= Tff7b72thisTb4b4b4.Te6edf3_snakeEatenIdsTb4b4b4[Te6edf3iTb4b4b4]Tb4b4b4;
Tff7b72const Te6edf3pos Tff7b72= Tff7b72thisTb4b4b4.Te6edf3getPositionAlongTrailTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3_snakeTrailTb4b4b4, Tb4b4b4(Te6edf3i Tff7b72+ T79c0ff1Tb4b4b4) Tff7b72* Te6edf3tailGapTb4b4b4)Tb4b4b4;
Te6edf3updatesTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4{ Te6edf3idTb4b4b4, Te6edf3xTff7b72: Te6edf3posTb4b4b4.Te6edf3xTb4b4b4, Te6edf3yTff7b72: Te6edf3posTb4b4b4.Te6edf3y Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3updatesTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3updateTb4b4b4(Te6edf3updatesTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3foodArr Tff7b72= Tb4b4b4[Tb4b4b4...Tff7b72thisTb4b4b4.Te6edf3_snakeFoodIdsTb4b4b4]Tb4b4b4;
Tff7b72const Te6edf3posMap Tff7b72= Te6edf3foodArrTb4b4b4.Te6edf3length Tff7b72> T79c0ff0 Tff7b72? Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3getPositionsTb4b4b4(Te6edf3foodArrTb4b4b4) Tff7b72: Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3fid Tff7b72of Te6edf3foodArrTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3fp Tff7b72= Te6edf3posMapTb4b4b4[Te6edf3fidTb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3fpTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3_snakeFoodIdsTb4b4b4.Tff7b72deleteTb4b4b4(Te6edf3fidTb4b4b4)Tb4b4b4;
Tff7b72continueTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3n Tff7b72= Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3getTb4b4b4(Te6edf3fidTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3nr Tff7b72= Te6edf3n Tff7b72&& Te6edf3nTb4b4b4.Te6edf3size Tff7b72? Te6edf3nTb4b4b4.Te6edf3size Tff7b72* T79c0ff0.45 Tff7b72: T79c0ff14Tb4b4b4;
Tff7b72if Tb4b4b4(Tffa657MathTb4b4b4.Te6edf3hypotTb4b4b4(Te6edf3hx Tff7b72- Te6edf3fpTb4b4b4.Te6edf3xTb4b4b4, Te6edf3hy Tff7b72- Te6edf3fpTb4b4b4.Te6edf3yTb4b4b4) Tff7b72< Te6edf3headR Tff7b72+ Te6edf3nrTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3_snakeFoodIdsTb4b4b4.Tff7b72deleteTb4b4b4(Te6edf3fidTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_snakeEatenIdsTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3fidTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72for Tb4b4b4(Tff7b72let Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Tff7b72thisTb4b4b4.Te6edf3_snakeEatenIdsTb4b4b4.Te6edf3lengthTb4b4b4; Te6edf3iTff7b72++Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3pos Tff7b72= Tff7b72thisTb4b4b4.Te6edf3getPositionAlongTrailTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3_snakeTrailTb4b4b4, Tb4b4b4(Te6edf3i Tff7b72+ T79c0ff1Tb4b4b4) Tff7b72* Te6edf3tailGapTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tffa657MathTb4b4b4.Te6edf3hypotTb4b4b4(Te6edf3hx Tff7b72- Te6edf3posTb4b4b4.Te6edf3xTb4b4b4, Te6edf3hy Tff7b72- Te6edf3posTb4b4b4.Te6edf3yTb4b4b4) Tff7b72< Te6edf3headR Tff7b72* T79c0ff0.55Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3snakeAnimationFrameTb4b4b4) Tb4b4b4{
Te6edf3cancelAnimationFrameTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3snakeAnimationFrameTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3snakeAnimationFrame Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Te6edf3ToastUtilsTb4b4b4.Te6edf3infoTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"visualiser.snake_hit_self"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3enableSnake Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3_snakeFoodIdsTb4b4b4.Te6edf3size Tff7b72=== T79c0ff0 Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3_snakeEatenIdsTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3snakeAnimationFrameTb4b4b4) Tb4b4b4{
Te6edf3cancelAnimationFrameTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3snakeAnimationFrameTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3snakeAnimationFrame Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"visualiser.snake_win"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3enableSnake Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3snakeAnimationFrame Tff7b72= Te6edf3requestAnimationFrameTb4b4b4(Te6edf3tickTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3snakeAnimationFrame Tff7b72= Te6edf3requestAnimationFrameTb4b4b4(Te6edf3tickTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3stopSnakeTb4b4b4(Te6edf3runProcessViz Tff7b72= Tff7b72trueTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3snakeAnimationFrameTb4b4b4) Tb4b4b4{
Te6edf3cancelAnimationFrameTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3snakeAnimationFrameTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3snakeAnimationFrame Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3detachGameKeyListenersTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_snakeTrail Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_snakeFoodIds Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_snakeEatenIds Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72const Te6edf3edges Tff7b72= Tff7b72thisTb4b4b4.Te6edf3edgesTb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3edgesTb4b4b4.Te6edf3updateTb4b4b4(Te6edf3edgesTb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3edgeTb4b4b4) Tb4b4b4=> Tb4b4b4(Tb4b4b4{ Te6edf3idTff7b72: Te6edf3edgeTb4b4b4.Te6edf3idTb4b4b4, Te6edf3hiddenTff7b72: Tff7b72false Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3refreshPhysicsEnabledTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3runProcessViz Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3processVisualizationTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3startPongTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopPongTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopSnakeTb4b4b4(Tff7b72falseTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopOrbitTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopBouncingBallsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stopFallingSkiesTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3setOptionsTb4b4b4(Tb4b4b4{ Te6edf3physicsTff7b72: Tb4b4b4{ Te6edf3enabledTff7b72: Tff7b72false Tb4b4b4} Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3edges Tff7b72= Tff7b72thisTb4b4b4.Te6edf3edgesTb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3edgesTb4b4b4.Te6edf3updateTb4b4b4(Te6edf3edgesTb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3edgeTb4b4b4) Tb4b4b4=> Tb4b4b4(Tb4b4b4{ Te6edf3idTff7b72: Te6edf3edgeTb4b4b4.Te6edf3idTb4b4b4, Te6edf3hiddenTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3b Tff7b72= Tff7b72thisTb4b4b4.Te6edf3getViewCanvasBoundsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3bTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72const Te6edf3midX Tff7b72= Tb4b4b4(Te6edf3bTb4b4b4.Te6edf3left Tff7b72+ Te6edf3bTb4b4b4.Te6edf3rightTb4b4b4) Tff7b72/ T79c0ff2Tb4b4b4;
Tff7b72const Te6edf3midY Tff7b72= Tb4b4b4(Te6edf3bTb4b4b4.Te6edf3top Tff7b72+ Te6edf3bTb4b4b4.Te6edf3bottomTb4b4b4) Tff7b72/ T79c0ff2Tb4b4b4;
Tff7b72const Te6edf3padH Tff7b72= T79c0ff100Tb4b4b4;
Tff7b72const Te6edf3padW Tff7b72= T79c0ff14Tb4b4b4;
Tff7b72const Te6edf3ballR Tff7b72= T79c0ff10Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_pongBall Tff7b72= Tb4b4b4{ Te6edf3xTff7b72: Te6edf3midXTb4b4b4, Te6edf3yTff7b72: Te6edf3midYTb4b4b4, Te6edf3vxTff7b72: T79c0ff9Tb4b4b4, Te6edf3vyTff7b72: T79c0ff6Tb4b4b4, Te6edf3rTff7b72: Te6edf3ballR Tb4b4b4}Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_pongPadL Tff7b72= Tb4b4b4{ Te6edf3xTff7b72: Te6edf3bTb4b4b4.Te6edf3left Tff7b72+ T79c0ff36Tb4b4b4, Te6edf3yTff7b72: Te6edf3midYTb4b4b4, Te6edf3wTff7b72: Te6edf3padWTb4b4b4, Te6edf3hTff7b72: Te6edf3padH Tb4b4b4}Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_pongPadR Tff7b72= Tb4b4b4{ Te6edf3xTff7b72: Te6edf3bTb4b4b4.Te6edf3right Tff7b72- T79c0ff36Tb4b4b4, Te6edf3yTff7b72: Te6edf3midYTb4b4b4, Te6edf3wTff7b72: Te6edf3padWTb4b4b4, Te6edf3hTff7b72: Te6edf3padH Tb4b4b4}Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_pongScoreYou Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_pongScoreAi Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_pongWinPoints Tff7b72= T79c0ff7Tb4b4b4;
Tff7b72const Te6edf3isDark Tff7b72= Tffa657documentTb4b4b4.Te6edf3documentElementTb4b4b4.Te6edf3classListTb4b4b4.Te6edf3containsTb4b4b4(Ta5d6ff"dark"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3padBg Tff7b72= Te6edf3isDark Tff7b72? Ta5d6ff"#1e40af" Tff7b72: Ta5d6ff"#60a5fa"Tb4b4b4;
Tff7b72const Te6edf3padBr Tff7b72= Te6edf3isDark Tff7b72? Ta5d6ff"#3b82f6" Tff7b72: Ta5d6ff"#2563eb"Tb4b4b4;
Tff7b72const Te6edf3hudFg Tff7b72= Te6edf3isDark Tff7b72? Ta5d6ff"#fafafa" Tff7b72: Ta5d6ff"#18181b"Tb4b4b4;
Tff7b72const Te6edf3hudBg Tff7b72= Te6edf3isDark Tff7b72? Ta5d6ff"#27272a" Tff7b72: Ta5d6ff"#f4f4f5"Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3updateTb4b4b4(Tb4b4b4[
Tb4b4b4{
Te6edf3idTff7b72: Ta5d6ff"__pong_ball"Tb4b4b4,
Te6edf3groupTff7b72: Ta5d6ff"pong"Tb4b4b4,
Te6edf3shapeTff7b72: Ta5d6ff"dot"Tb4b4b4,
Te6edf3sizeTff7b72: Te6edf3ballR Tff7b72* T79c0ff2Tb4b4b4,
Te6edf3colorTff7b72: Tff7b72thisTb4b4b4.Te6edf3nodeColorTb4b4b4(Ta5d6ff"#e2e8f0"Tb4b4b4, Te6edf3isDark Tff7b72? Ta5d6ff"#f8fafc" Tff7b72: Ta5d6ff"#0f172a"Tb4b4b4)Tb4b4b4,
Te6edf3labelTff7b72: Ta5d6ff""Tb4b4b4,
Te6edf3fontTff7b72: Tb4b4b4{ Te6edf3sizeTff7b72: T79c0ff0 Tb4b4b4}Tb4b4b4,
Te6edf3xTff7b72: Tff7b72thisTb4b4b4.Te6edf3_pongBallTb4b4b4.Te6edf3xTb4b4b4,
Te6edf3yTff7b72: Tff7b72thisTb4b4b4.Te6edf3_pongBallTb4b4b4.Te6edf3yTb4b4b4,
Te6edf3physicsTff7b72: Tff7b72falseTb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4{
Te6edf3idTff7b72: Ta5d6ff"__pong_hud"Tb4b4b4,
Te6edf3groupTff7b72: Ta5d6ff"pong"Tb4b4b4,
Te6edf3shapeTff7b72: Ta5d6ff"box"Tb4b4b4,
Te6edf3labelTff7b72: Ta5d6ff`Ta5d6ff0 - 0Ta5d6ff`Tb4b4b4,
Te6edf3fontTff7b72: Tb4b4b4{ Te6edf3sizeTff7b72: T79c0ff16Tb4b4b4, Te6edf3colorTff7b72: Te6edf3hudFgTb4b4b4, Te6edf3boldTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4,
Te6edf3marginTff7b72: T79c0ff10Tb4b4b4,
Te6edf3colorTff7b72: Tb4b4b4{
Te6edf3backgroundTff7b72: Te6edf3hudBgTb4b4b4,
Te6edf3borderTff7b72: Te6edf3padBrTb4b4b4,
Te6edf3highlightTff7b72: Tb4b4b4{ Te6edf3backgroundTff7b72: Te6edf3hudBgTb4b4b4, Te6edf3borderTff7b72: Te6edf3padBr Tb4b4b4}Tb4b4b4,
Te6edf3hoverTff7b72: Tb4b4b4{ Te6edf3backgroundTff7b72: Te6edf3hudBgTb4b4b4, Te6edf3borderTff7b72: Te6edf3padBr Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3xTff7b72: Te6edf3midXTb4b4b4,
Te6edf3yTff7b72: Te6edf3bTb4b4b4.Te6edf3top Tff7b72+ T79c0ff44Tb4b4b4,
Te6edf3physicsTff7b72: Tff7b72falseTb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4{
Te6edf3idTff7b72: Ta5d6ff"__pong_pad_l"Tb4b4b4,
Te6edf3groupTff7b72: Ta5d6ff"pong"Tb4b4b4,
Te6edf3shapeTff7b72: Ta5d6ff"box"Tb4b4b4,
Te6edf3labelTff7b72: Ta5d6ff""Tb4b4b4,
Te6edf3fontTff7b72: Tb4b4b4{ Te6edf3sizeTff7b72: T79c0ff0 Tb4b4b4}Tb4b4b4,
Te6edf3marginTff7b72: T79c0ff6Tb4b4b4,
Te6edf3widthConstraintTff7b72: Tb4b4b4{ Te6edf3minimumTff7b72: Te6edf3padW Tff7b72* T79c0ff2Tb4b4b4, Te6edf3maximumTff7b72: Te6edf3padW Tff7b72* T79c0ff2 Tb4b4b4}Tb4b4b4,
Te6edf3heightConstraintTff7b72: Tb4b4b4{ Te6edf3minimumTff7b72: Te6edf3padHTb4b4b4, Te6edf3maximumTff7b72: Te6edf3padH Tb4b4b4}Tb4b4b4,
Te6edf3colorTff7b72: Tb4b4b4{ Te6edf3backgroundTff7b72: Te6edf3padBgTb4b4b4, Te6edf3borderTff7b72: Te6edf3padBrTb4b4b4, Te6edf3highlightTff7b72: Tb4b4b4{ Te6edf3backgroundTff7b72: Te6edf3padBgTb4b4b4, Te6edf3borderTff7b72: Te6edf3padBr Tb4b4b4} Tb4b4b4}Tb4b4b4,
Te6edf3xTff7b72: Tff7b72thisTb4b4b4.Te6edf3_pongPadLTb4b4b4.Te6edf3xTb4b4b4,
Te6edf3yTff7b72: Tff7b72thisTb4b4b4.Te6edf3_pongPadLTb4b4b4.Te6edf3yTb4b4b4,
Te6edf3physicsTff7b72: Tff7b72falseTb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4{
Te6edf3idTff7b72: Ta5d6ff"__pong_pad_r"Tb4b4b4,
Te6edf3groupTff7b72: Ta5d6ff"pong"Tb4b4b4,
Te6edf3shapeTff7b72: Ta5d6ff"box"Tb4b4b4,
Te6edf3labelTff7b72: Ta5d6ff""Tb4b4b4,
Te6edf3fontTff7b72: Tb4b4b4{ Te6edf3sizeTff7b72: T79c0ff0 Tb4b4b4}Tb4b4b4,
Te6edf3marginTff7b72: T79c0ff6Tb4b4b4,
Te6edf3widthConstraintTff7b72: Tb4b4b4{ Te6edf3minimumTff7b72: Te6edf3padW Tff7b72* T79c0ff2Tb4b4b4, Te6edf3maximumTff7b72: Te6edf3padW Tff7b72* T79c0ff2 Tb4b4b4}Tb4b4b4,
Te6edf3heightConstraintTff7b72: Tb4b4b4{ Te6edf3minimumTff7b72: Te6edf3padHTb4b4b4, Te6edf3maximumTff7b72: Te6edf3padH Tb4b4b4}Tb4b4b4,
Te6edf3colorTff7b72: Tb4b4b4{
Te6edf3backgroundTff7b72: Te6edf3isDark Tff7b72? Ta5d6ff"#4c1d95" Tff7b72: Ta5d6ff"#a78bfa"Tb4b4b4,
Te6edf3borderTff7b72: Te6edf3padBrTb4b4b4,
Te6edf3highlightTff7b72: Tb4b4b4{ Te6edf3backgroundTff7b72: Te6edf3padBgTb4b4b4, Te6edf3borderTff7b72: Te6edf3padBr Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3xTff7b72: Tff7b72thisTb4b4b4.Te6edf3_pongPadRTb4b4b4.Te6edf3xTb4b4b4,
Te6edf3yTff7b72: Tff7b72thisTb4b4b4.Te6edf3_pongPadRTb4b4b4.Te6edf3yTb4b4b4,
Te6edf3physicsTff7b72: Tff7b72falseTb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4]Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3attachGameKeyListenersTb4b4b4(Ta5d6ff"pong"Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3infoTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"visualiser.pong_hint"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3paddleSpeed Tff7b72= T79c0ff11Tb4b4b4;
Tff7b72const Te6edf3aiMaxStep Tff7b72= Te6edf3paddleSpeed Tff7b72* T79c0ff0.92Tb4b4b4;
Tff7b72const Te6edf3resetBall Tff7b72= Tb4b4b4(Te6edf3boundsTb4b4b4, Te6edf3towardSignTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3bb Tff7b72= Tff7b72thisTb4b4b4.Te6edf3_pongBallTb4b4b4;
Te6edf3bbTb4b4b4.Te6edf3x Tff7b72= Tb4b4b4(Te6edf3boundsTb4b4b4.Te6edf3left Tff7b72+ Te6edf3boundsTb4b4b4.Te6edf3rightTb4b4b4) Tff7b72/ T79c0ff2Tb4b4b4;
Te6edf3bbTb4b4b4.Te6edf3y Tff7b72= Tb4b4b4(Te6edf3boundsTb4b4b4.Te6edf3top Tff7b72+ Te6edf3boundsTb4b4b4.Te6edf3bottomTb4b4b4) Tff7b72/ T79c0ff2Tb4b4b4;
Tff7b72const Te6edf3ramp Tff7b72= Tffa657MathTb4b4b4.Te6edf3minTb4b4b4(T79c0ff5Tb4b4b4, Tff7b72thisTb4b4b4.Te6edf3_pongScoreYou Tff7b72+ Tff7b72thisTb4b4b4.Te6edf3_pongScoreAiTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3base Tff7b72= T79c0ff8.5 Tff7b72+ Te6edf3ramp Tff7b72* T79c0ff0.35Tb4b4b4;
Te6edf3bbTb4b4b4.Te6edf3vx Tff7b72= Te6edf3towardSign Tff7b72* Te6edf3base Tff7b72* Tb4b4b4(T79c0ff0.95 Tff7b72+ Tffa657MathTb4b4b4.Te6edf3randomTb4b4b4(Tb4b4b4) Tff7b72* T79c0ff0.1Tb4b4b4)Tb4b4b4;
Te6edf3bbTb4b4b4.Te6edf3vy Tff7b72= Tb4b4b4(Tffa657MathTb4b4b4.Te6edf3randomTb4b4b4(Tb4b4b4) Tff7b72* T79c0ff8 Tff7b72+ T79c0ff3Tb4b4b4) Tff7b72* Tb4b4b4(Tffa657MathTb4b4b4.Te6edf3randomTb4b4b4(Tb4b4b4) Tff7b72> T79c0ff0.5 Tff7b72? T79c0ff1 Tff7b72: Tff7b72-T79c0ff1Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Tff7b72const Te6edf3loop Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3enablePong Tff7b72|| Tff7b72!Tff7b72thisTb4b4b4.Te6edf3network Tff7b72|| Tff7b72!Tff7b72thisTb4b4b4.Te6edf3_pongBallTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72const Te6edf3bounds Tff7b72= Tff7b72thisTb4b4b4.Te6edf3getViewCanvasBoundsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3boundsTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72const Te6edf3ball Tff7b72= Tff7b72thisTb4b4b4.Te6edf3_pongBallTb4b4b4;
Tff7b72const Te6edf3pl Tff7b72= Tff7b72thisTb4b4b4.Te6edf3_pongPadLTb4b4b4;
Tff7b72const Te6edf3pr Tff7b72= Tff7b72thisTb4b4b4.Te6edf3_pongPadRTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3_snakeKeysTb4b4b4.Te6edf3wTb4b4b4) Te6edf3plTb4b4b4.Te6edf3y Tff7b72-= Te6edf3paddleSpeedTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3_snakeKeysTb4b4b4.Te6edf3sTb4b4b4) Te6edf3plTb4b4b4.Te6edf3y Tff7b72+= Te6edf3paddleSpeedTb4b4b4;
Tff7b72const Te6edf3ph Tff7b72= Te6edf3padH Tff7b72/ T79c0ff2Tb4b4b4;
Tff7b72const Te6edf3dy Tff7b72= Te6edf3ballTb4b4b4.Te6edf3y Tff7b72- Te6edf3prTb4b4b4.Te6edf3yTb4b4b4;
Tff7b72const Te6edf3step Tff7b72= Tffa657MathTb4b4b4.Te6edf3minTb4b4b4(Te6edf3aiMaxStepTb4b4b4, Tffa657MathTb4b4b4.Te6edf3absTb4b4b4(Te6edf3dyTb4b4b4) Tff7b72* T79c0ff0.22Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3dy Tff7b72< Tff7b72-T79c0ff1.5Tb4b4b4) Te6edf3prTb4b4b4.Te6edf3y Tff7b72-= Te6edf3stepTb4b4b4;
Tff7b72else Tff7b72if Tb4b4b4(Te6edf3dy Tff7b72> T79c0ff1.5Tb4b4b4) Te6edf3prTb4b4b4.Te6edf3y Tff7b72+= Te6edf3stepTb4b4b4;
Te6edf3plTb4b4b4.Te6edf3y Tff7b72= Tffa657MathTb4b4b4.Te6edf3maxTb4b4b4(Te6edf3boundsTb4b4b4.Te6edf3top Tff7b72+ Te6edf3ph Tff7b72+ T79c0ff8Tb4b4b4, Tffa657MathTb4b4b4.Te6edf3minTb4b4b4(Te6edf3boundsTb4b4b4.Te6edf3bottom Tff7b72- Te6edf3ph Tff7b72- T79c0ff8Tb4b4b4, Te6edf3plTb4b4b4.Te6edf3yTb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3prTb4b4b4.Te6edf3y Tff7b72= Tffa657MathTb4b4b4.Te6edf3maxTb4b4b4(Te6edf3boundsTb4b4b4.Te6edf3top Tff7b72+ Te6edf3ph Tff7b72+ T79c0ff8Tb4b4b4, Tffa657MathTb4b4b4.Te6edf3minTb4b4b4(Te6edf3boundsTb4b4b4.Te6edf3bottom Tff7b72- Te6edf3ph Tff7b72- T79c0ff8Tb4b4b4, Te6edf3prTb4b4b4.Te6edf3yTb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3ballTb4b4b4.Te6edf3x Tff7b72+= Te6edf3ballTb4b4b4.Te6edf3vxTb4b4b4;
Te6edf3ballTb4b4b4.Te6edf3y Tff7b72+= Te6edf3ballTb4b4b4.Te6edf3vyTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3ballTb4b4b4.Te6edf3y Tff7b72- Te6edf3ballTb4b4b4.Te6edf3r Tff7b72< Te6edf3boundsTb4b4b4.Te6edf3topTb4b4b4) Tb4b4b4{
Te6edf3ballTb4b4b4.Te6edf3y Tff7b72= Te6edf3boundsTb4b4b4.Te6edf3top Tff7b72+ Te6edf3ballTb4b4b4.Te6edf3rTb4b4b4;
Te6edf3ballTb4b4b4.Te6edf3vy Tff7b72*= Tff7b72-T79c0ff1Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3ballTb4b4b4.Te6edf3y Tff7b72+ Te6edf3ballTb4b4b4.Te6edf3r Tff7b72> Te6edf3boundsTb4b4b4.Te6edf3bottomTb4b4b4) Tb4b4b4{
Te6edf3ballTb4b4b4.Te6edf3y Tff7b72= Te6edf3boundsTb4b4b4.Te6edf3bottom Tff7b72- Te6edf3ballTb4b4b4.Te6edf3rTb4b4b4;
Te6edf3ballTb4b4b4.Te6edf3vy Tff7b72*= Tff7b72-T79c0ff1Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3ballTb4b4b4.Te6edf3vx Tff7b72< T79c0ff0 Tff7b72&& Te6edf3ballTb4b4b4.Te6edf3x Tff7b72- Te6edf3ballTb4b4b4.Te6edf3r Tff7b72<= Te6edf3plTb4b4b4.Te6edf3x Tff7b72+ Te6edf3padW Tff7b72&& Te6edf3ballTb4b4b4.Te6edf3y Tff7b72>= Te6edf3plTb4b4b4.Te6edf3y Tff7b72- Te6edf3ph Tff7b72&& Te6edf3ballTb4b4b4.Te6edf3y Tff7b72<= Te6edf3plTb4b4b4.Te6edf3y Tff7b72+ Te6edf3phTb4b4b4) Tb4b4b4{
Te6edf3ballTb4b4b4.Te6edf3x Tff7b72= Te6edf3plTb4b4b4.Te6edf3x Tff7b72+ Te6edf3padW Tff7b72+ Te6edf3ballTb4b4b4.Te6edf3rTb4b4b4;
Te6edf3ballTb4b4b4.Te6edf3vx Tff7b72*= Tff7b72-T79c0ff1.025Tb4b4b4;
Te6edf3ballTb4b4b4.Te6edf3vy Tff7b72+= Tb4b4b4(Tffa657MathTb4b4b4.Te6edf3randomTb4b4b4(Tb4b4b4) Tff7b72- T79c0ff0.5Tb4b4b4) Tff7b72* T79c0ff2.2Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(
Te6edf3ballTb4b4b4.Te6edf3vx Tff7b72> T79c0ff0 Tff7b72&&
Te6edf3ballTb4b4b4.Te6edf3x Tff7b72+ Te6edf3ballTb4b4b4.Te6edf3r Tff7b72>= Te6edf3prTb4b4b4.Te6edf3x Tff7b72- Te6edf3padW Tff7b72&&
Te6edf3ballTb4b4b4.Te6edf3y Tff7b72>= Te6edf3prTb4b4b4.Te6edf3y Tff7b72- Te6edf3ph Tff7b72&&
Te6edf3ballTb4b4b4.Te6edf3y Tff7b72<= Te6edf3prTb4b4b4.Te6edf3y Tff7b72+ Te6edf3ph
Tb4b4b4) Tb4b4b4{
Te6edf3ballTb4b4b4.Te6edf3x Tff7b72= Te6edf3prTb4b4b4.Te6edf3x Tff7b72- Te6edf3padW Tff7b72- Te6edf3ballTb4b4b4.Te6edf3rTb4b4b4;
Te6edf3ballTb4b4b4.Te6edf3vx Tff7b72*= Tff7b72-T79c0ff1.025Tb4b4b4;
Te6edf3ballTb4b4b4.Te6edf3vy Tff7b72+= Tb4b4b4(Tffa657MathTb4b4b4.Te6edf3randomTb4b4b4(Tb4b4b4) Tff7b72- T79c0ff0.5Tb4b4b4) Tff7b72* T79c0ff2.2Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3edgeMargin Tff7b72= T79c0ff18Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3ballTb4b4b4.Te6edf3x Tff7b72- Te6edf3ballTb4b4b4.Te6edf3r Tff7b72< Te6edf3boundsTb4b4b4.Te6edf3left Tff7b72- Te6edf3edgeMarginTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3_pongScoreAiTff7b72++Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3_pongScoreAi Tff7b72>= Tff7b72thisTb4b4b4.Te6edf3_pongWinPointsTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3pongAnimationFrameTb4b4b4) Tb4b4b4{
Te6edf3cancelAnimationFrameTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3pongAnimationFrameTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3pongAnimationFrame Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Te6edf3ToastUtilsTb4b4b4.Te6edf3infoTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"visualiser.pong_win_ai"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3enablePong Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3resetBallTb4b4b4(Te6edf3boundsTb4b4b4, Tff7b72-T79c0ff1Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3ballTb4b4b4.Te6edf3x Tff7b72+ Te6edf3ballTb4b4b4.Te6edf3r Tff7b72> Te6edf3boundsTb4b4b4.Te6edf3right Tff7b72+ Te6edf3edgeMarginTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3_pongScoreYouTff7b72++Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3_pongScoreYou Tff7b72>= Tff7b72thisTb4b4b4.Te6edf3_pongWinPointsTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3pongAnimationFrameTb4b4b4) Tb4b4b4{
Te6edf3cancelAnimationFrameTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3pongAnimationFrameTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3pongAnimationFrame Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"visualiser.pong_win_you"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3enablePong Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3resetBallTb4b4b4(Te6edf3boundsTb4b4b4, T79c0ff1Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3hudLabel Tff7b72= Ta5d6ff`Tffd700${Tff7b72thisTb4b4b4.Te6edf3_pongScoreYouTffd700}Ta5d6ff - Tffd700${Tff7b72thisTb4b4b4.Te6edf3_pongScoreAiTffd700}Ta5d6ff`Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3updateTb4b4b4(Tb4b4b4[
Tb4b4b4{ Te6edf3idTff7b72: Ta5d6ff"__pong_ball"Tb4b4b4, Te6edf3xTff7b72: Te6edf3ballTb4b4b4.Te6edf3xTb4b4b4, Te6edf3yTff7b72: Te6edf3ballTb4b4b4.Te6edf3y Tb4b4b4}Tb4b4b4,
Tb4b4b4{ Te6edf3idTff7b72: Ta5d6ff"__pong_pad_l"Tb4b4b4, Te6edf3xTff7b72: Te6edf3plTb4b4b4.Te6edf3xTb4b4b4, Te6edf3yTff7b72: Te6edf3plTb4b4b4.Te6edf3y Tb4b4b4}Tb4b4b4,
Tb4b4b4{ Te6edf3idTff7b72: Ta5d6ff"__pong_pad_r"Tb4b4b4, Te6edf3xTff7b72: Te6edf3prTb4b4b4.Te6edf3xTb4b4b4, Te6edf3yTff7b72: Te6edf3prTb4b4b4.Te6edf3y Tb4b4b4}Tb4b4b4,
Tb4b4b4{ Te6edf3idTff7b72: Ta5d6ff"__pong_hud"Tb4b4b4, Te6edf3labelTff7b72: Te6edf3hudLabelTb4b4b4, Te6edf3xTff7b72: Tb4b4b4(Te6edf3boundsTb4b4b4.Te6edf3left Tff7b72+ Te6edf3boundsTb4b4b4.Te6edf3rightTb4b4b4) Tff7b72/ T79c0ff2Tb4b4b4, Te6edf3yTff7b72: Te6edf3boundsTb4b4b4.Te6edf3top Tff7b72+ T79c0ff44 Tb4b4b4}Tb4b4b4,
Tb4b4b4]Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3pongAnimationFrame Tff7b72= Te6edf3requestAnimationFrameTb4b4b4(Te6edf3loopTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3pongAnimationFrame Tff7b72= Te6edf3requestAnimationFrameTb4b4b4(Te6edf3loopTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3stopPongTb4b4b4(Te6edf3runProcessViz Tff7b72= Tff7b72trueTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3pongAnimationFrameTb4b4b4) Tb4b4b4{
Te6edf3cancelAnimationFrameTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3pongAnimationFrameTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3pongAnimationFrame Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3detachGameKeyListenersTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_pongBall Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3id Tff7b72of Te6edf3PONG_NODE_IDSTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3removeTb4b4b4(Te6edf3idTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
T8b949e/* node may already be removed */
Tb4b4b4}
Tb4b4b4}
Tff7b72const Te6edf3edges Tff7b72= Tff7b72thisTb4b4b4.Te6edf3edgesTb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3edgesTb4b4b4.Te6edf3updateTb4b4b4(Te6edf3edgesTb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3edgeTb4b4b4) Tb4b4b4=> Tb4b4b4(Tb4b4b4{ Te6edf3idTff7b72: Te6edf3edgeTb4b4b4.Te6edf3idTb4b4b4, Te6edf3hiddenTff7b72: Tff7b72false Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3refreshPhysicsEnabledTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3runProcessViz Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3processVisualizationTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3reconcileSnakeFoodAfterVizTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3_snakeFoodIds Tff7b72|| Tff7b72!Tff7b72thisTb4b4b4.Te6edf3_snakeEatenIdsTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72const Te6edf3ids Tff7b72= Tff7b72new Tffa657SetTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3getIdsTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_snakeEatenIds Tff7b72= Tff7b72thisTb4b4b4.Te6edf3_snakeEatenIdsTb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3idTb4b4b4) Tb4b4b4=> Te6edf3idsTb4b4b4.Te6edf3hasTb4b4b4(Te6edf3idTb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3eaten Tff7b72= Tff7b72new Tffa657SetTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3_snakeEatenIdsTb4b4b4)Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3id Tff7b72of Tb4b4b4[Tb4b4b4...Tff7b72thisTb4b4b4.Te6edf3_snakeFoodIdsTb4b4b4]Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3idsTb4b4b4.Te6edf3hasTb4b4b4(Te6edf3idTb4b4b4)Tb4b4b4) Tff7b72thisTb4b4b4.Te6edf3_snakeFoodIdsTb4b4b4.Tff7b72deleteTb4b4b4(Te6edf3idTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3id Tff7b72of Te6edf3idsTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3id Tff7b72=== Ta5d6ff"me" Tff7b72|| Te6edf3eatenTb4b4b4.Te6edf3hasTb4b4b4(Te6edf3idTb4b4b4) Tff7b72|| Te6edf3PONG_NODE_IDSTb4b4b4.Te6edf3includesTb4b4b4(Te6edf3idTb4b4b4)Tb4b4b4) Tff7b72continueTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_snakeFoodIdsTb4b4b4.Te6edf3addTb4b4b4(Te6edf3idTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3initTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3container Tff7b72= Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff"network"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3isDarkMode Tff7b72= Tffa657documentTb4b4b4.Te6edf3documentElementTb4b4b4.Te6edf3classListTb4b4b4.Te6edf3containsTb4b4b4(Ta5d6ff"dark"Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3network Tff7b72= Tff7b72new Te6edf3NetworkTb4b4b4(
Te6edf3containerTb4b4b4,
Tb4b4b4{
Te6edf3nodesTff7b72: Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4,
Te6edf3edgesTff7b72: Tff7b72thisTb4b4b4.Te6edf3edgesTb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4{
Te6edf3interactionTff7b72: Tb4b4b4{
Te6edf3tooltipDelayTff7b72: T79c0ff100Tb4b4b4,
Te6edf3hoverTff7b72: Tff7b72trueTb4b4b4,
Te6edf3hideEdgesOnDragTff7b72: Tff7b72trueTb4b4b4,
Te6edf3hideEdgesOnZoomTff7b72: Tff7b72trueTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3layoutTff7b72: Tb4b4b4{
Te6edf3randomSeedTff7b72: T79c0ff42Tb4b4b4,
Te6edf3improvedLayoutTff7b72: Tff7b72falseTb4b4b4, T8b949e// faster for large networks
Tb4b4b4}Tb4b4b4,
Te6edf3physicsTff7b72: Tb4b4b4{
Te6edf3enabledTff7b72: Tff7b72thisTb4b4b4.Te6edf3enablePhysicsTb4b4b4,
Te6edf3solverTff7b72: Ta5d6ff"barnesHut"Tb4b4b4,
Te6edf3barnesHutTff7b72: Tb4b4b4{
Te6edf3gravitationalConstantTff7b72: Tff7b72-T79c0ff10000Tb4b4b4,
Te6edf3springConstantTff7b72: T79c0ff0.02Tb4b4b4,
Te6edf3springLengthTff7b72: T79c0ff200Tb4b4b4,
Te6edf3dampingTff7b72: T79c0ff0.4Tb4b4b4,
Te6edf3avoidOverlapTff7b72: T79c0ff1Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3stabilizationTff7b72: Tb4b4b4{
Te6edf3enabledTff7b72: Tff7b72trueTb4b4b4,
Te6edf3iterationsTff7b72: T79c0ff150Tb4b4b4,
Te6edf3updateIntervalTff7b72: T79c0ff25Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3nodesTff7b72: Tb4b4b4{
Te6edf3borderWidthTff7b72: T79c0ff3Tb4b4b4,
Te6edf3borderWidthSelectedTff7b72: T79c0ff6Tb4b4b4,
Te6edf3colorTff7b72: Tb4b4b4{
Te6edf3borderTff7b72: Ta5d6ff"#3b82f6"Tb4b4b4,
Te6edf3backgroundTff7b72: Te6edf3isDarkMode Tff7b72? Ta5d6ff"#1e40af" Tff7b72: Ta5d6ff"#eff6ff"Tb4b4b4,
Te6edf3highlightTff7b72: Tb4b4b4{ Te6edf3borderTff7b72: Ta5d6ff"#3b82f6"Tb4b4b4, Te6edf3backgroundTff7b72: Te6edf3isDarkMode Tff7b72? Ta5d6ff"#2563eb" Tff7b72: Ta5d6ff"#dbeafe" Tb4b4b4}Tb4b4b4,
Te6edf3hoverTff7b72: Tb4b4b4{ Te6edf3borderTff7b72: Ta5d6ff"#3b82f6"Tb4b4b4, Te6edf3backgroundTff7b72: Te6edf3isDarkMode Tff7b72? Ta5d6ff"#2563eb" Tff7b72: Ta5d6ff"#dbeafe" Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3fontTff7b72: Tb4b4b4{
Te6edf3faceTff7b72: Ta5d6ff"Inter, system-ui, sans-serif"Tb4b4b4,
Te6edf3strokeWidthTff7b72: T79c0ff4Tb4b4b4,
Te6edf3strokeColorTff7b72: Te6edf3isDarkMode Tff7b72? Ta5d6ff"rgba(9, 9, 11, 0.95)" Tff7b72: Ta5d6ff"rgba(255, 255, 255, 0.95)"Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3shadowTff7b72: Tb4b4b4{
Te6edf3enabledTff7b72: Tff7b72trueTb4b4b4,
Te6edf3colorTff7b72: Ta5d6ff"rgba(0,0,0,0.24)"Tb4b4b4,
Te6edf3sizeTff7b72: T79c0ff10Tb4b4b4,
Te6edf3xTff7b72: T79c0ff0Tb4b4b4,
Te6edf3yTff7b72: T79c0ff4Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3edgesTff7b72: Tb4b4b4{
Te6edf3smoothTff7b72: Tb4b4b4{
Te6edf3typeTff7b72: Ta5d6ff"continuous"Tb4b4b4,
Te6edf3roundnessTff7b72: T79c0ff0.5Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3selectionWidthTff7b72: T79c0ff3Tb4b4b4,
Te6edf3hoverWidthTff7b72: T79c0ff2Tb4b4b4,
Te6edf3colorTff7b72: Tb4b4b4{
Te6edf3opacityTff7b72: T79c0ff0.6Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}
Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3onTb4b4b4(Ta5d6ff"doubleClick"Tb4b4b4, Tb4b4b4(Te6edf3paramsTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3clickedNodeId Tff7b72= Te6edf3paramsTb4b4b4.Te6edf3nodesTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3clickedNodeIdTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72const Te6edf3node Tff7b72= Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3getTb4b4b4(Te6edf3clickedNodeIdTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3node Tff7b72|| Tff7b72!Te6edf3nodeTb4b4b4.Te6edf3_announceTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72const Te6edf3announce Tff7b72= Te6edf3nodeTb4b4b4.Te6edf3_announceTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3announceTb4b4b4.Te6edf3aspect Tff7b72=== Ta5d6ff"lxmf.delivery"Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3$routerTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4{
Te6edf3nameTff7b72: Ta5d6ff"messages"Tb4b4b4,
Te6edf3paramsTff7b72: Tb4b4b4{ Te6edf3destinationHashTff7b72: Te6edf3announceTb4b4b4.Te6edf3destination_hash Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3announceTb4b4b4.Te6edf3aspect Tff7b72=== Ta5d6ff"nomadnetwork.node"Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3$routerTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4{
Te6edf3nameTff7b72: Ta5d6ff"nomadnetwork"Tb4b4b4,
Te6edf3paramsTff7b72: Tb4b4b4{ Te6edf3destinationHashTff7b72: Te6edf3announceTb4b4b4.Te6edf3destination_hash Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3refreshPhysicsEnabledTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3onTb4b4b4(Ta5d6ff"dragStart"Tb4b4b4, Tb4b4b4(Te6edf3paramsTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(
Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3enableBouncingBalls Tff7b72||
Tff7b72thisTb4b4b4.Te6edf3enableOrbit Tff7b72||
Tff7b72thisTb4b4b4.Te6edf3enableFallingSkies Tff7b72||
Tff7b72thisTb4b4b4.Te6edf3enableSnake Tff7b72||
Tff7b72thisTb4b4b4.Te6edf3enablePongTb4b4b4) Tff7b72&&
Te6edf3paramsTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3length Tff7b72> T79c0ff0
Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3_draggingNodeId Tff7b72= Te6edf3paramsTb4b4b4.Te6edf3nodesTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3setOptionsTb4b4b4(Tb4b4b4{ Te6edf3physicsTff7b72: Tb4b4b4{ Te6edf3enabledTff7b72: Tff7b72false Tb4b4b4} Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3onTb4b4b4(Ta5d6ff"dragging"Tb4b4b4, Tb4b4b4(Te6edf3paramsTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3_draggingNodeIdTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3canvasPos Tff7b72= Te6edf3paramsTb4b4b4.Te6edf3pointerTb4b4b4.Te6edf3canvasTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3enableBouncingBallsTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3node Tff7b72= Tff7b72thisTb4b4b4.Te6edf3_bouncingNodesTb4b4b4.Te6edf3findTb4b4b4(Tb4b4b4(Te6edf3nTb4b4b4) Tb4b4b4=> Te6edf3nTb4b4b4.Te6edf3id Tff7b72=== Tff7b72thisTb4b4b4.Te6edf3_draggingNodeIdTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3nodeTb4b4b4) Tb4b4b4{
Te6edf3nodeTb4b4b4.Te6edf3vx Tff7b72= Tb4b4b4(Te6edf3canvasPosTb4b4b4.Te6edf3x Tff7b72- Te6edf3nodeTb4b4b4.Te6edf3xTb4b4b4) Tff7b72* T79c0ff0.5Tb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3vy Tff7b72= Tb4b4b4(Te6edf3canvasPosTb4b4b4.Te6edf3y Tff7b72- Te6edf3nodeTb4b4b4.Te6edf3yTb4b4b4) Tff7b72* T79c0ff0.5Tb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3x Tff7b72= Te6edf3canvasPosTb4b4b4.Te6edf3xTb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3y Tff7b72= Te6edf3canvasPosTb4b4b4.Te6edf3yTb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3enableOrbit Tff7b72|| Tff7b72thisTb4b4b4.Te6edf3enableFallingSkies Tff7b72|| Tff7b72thisTb4b4b4.Te6edf3enableSnake Tff7b72|| Tff7b72thisTb4b4b4.Te6edf3enablePongTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3updateTb4b4b4(Tb4b4b4{ Te6edf3idTff7b72: Tff7b72thisTb4b4b4.Te6edf3_draggingNodeIdTb4b4b4, Te6edf3xTff7b72: Te6edf3canvasPosTb4b4b4.Te6edf3xTb4b4b4, Te6edf3yTff7b72: Te6edf3canvasPosTb4b4b4.Te6edf3y Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3onTb4b4b4(Ta5d6ff"dragEnd"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3_draggingNodeId Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3refreshPhysicsEnabledTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3onTb4b4b4(Ta5d6ff"zoom"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3updateLODTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3manualUpdateTb4b4b4(Tb4b4b4)Tb4b4b4;
T8b949e// auto reload
Tff7b72thisTb4b4b4.Te6edf3reloadInterval Tff7b72= Te6edf3setIntervalTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3onAutoReloadTb4b4b4, T79c0ff15000Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3manualUpdateTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3isLoadingTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3isLoading Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3isUpdating Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3updateTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72finally Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3isLoading Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3isUpdating Tff7b72= Tff7b72falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3onAutoReloadTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3enableSnake Tff7b72|| Tff7b72thisTb4b4b4.Te6edf3enablePongTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3autoReload Tff7b72|| Tff7b72thisTb4b4b4.Te6edf3isUpdating Tff7b72|| Tff7b72thisTb4b4b4.Te6edf3isLoadingTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3isUpdating Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3updateTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72finally Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3isUpdating Tff7b72= Tff7b72falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3updateLODTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3network Tff7b72|| Tff7b72thisTb4b4b4.Te6edf3enableSnake Tff7b72|| Tff7b72thisTb4b4b4.Te6edf3enablePongTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72typeof Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3getScale Tff7b72!== Ta5d6ff"function"Tb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72const Te6edf3scale Tff7b72= Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3getScaleTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72let Te6edf3newLOD Tff7b72= Ta5d6ff"high"Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3scale Tff7b72< T79c0ff0.2Tb4b4b4) Tb4b4b4{
Te6edf3newLOD Tff7b72= Ta5d6ff"low"Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3scale Tff7b72< T79c0ff0.5Tb4b4b4) Tb4b4b4{
Te6edf3newLOD Tff7b72= Ta5d6ff"medium"Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3currentLOD Tff7b72=== Te6edf3newLODTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3currentLOD Tff7b72= Te6edf3newLODTb4b4b4;
Tff7b72const Te6edf3allNodes Tff7b72= Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3updates Tff7b72= Te6edf3allNodesTb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3nodeTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3getNodeLODPropsTb4b4b4(Te6edf3nodeTb4b4b4, Te6edf3newLODTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3updateTb4b4b4(Te6edf3updatesTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3nodeColorTb4b4b4(Te6edf3borderTb4b4b4, Te6edf3backgroundTb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4{
Te6edf3borderTb4b4b4,
Te6edf3backgroundTb4b4b4,
Te6edf3highlightTff7b72: Tb4b4b4{ Te6edf3borderTb4b4b4, Te6edf3background Tb4b4b4}Tb4b4b4,
Te6edf3hoverTff7b72: Tb4b4b4{ Te6edf3borderTb4b4b4, Te6edf3background Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3getNodeLODPropsTb4b4b4(Te6edf3nodeTb4b4b4, Te6edf3lodTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3isDarkMode Tff7b72= Tffa657documentTb4b4b4.Te6edf3documentElementTb4b4b4.Te6edf3classListTb4b4b4.Te6edf3containsTb4b4b4(Ta5d6ff"dark"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3fontColor Tff7b72= Te6edf3isDarkMode Tff7b72? Ta5d6ff"#ffffff" Tff7b72: Ta5d6ff"#000000"Tb4b4b4;
Tff7b72const Te6edf3blueBorder Tff7b72= Ta5d6ff"#3b82f6"Tb4b4b4;
Tff7b72const Te6edf3blueBg Tff7b72= Te6edf3isDarkMode Tff7b72? Ta5d6ff"#1e40af" Tff7b72: Ta5d6ff"#eff6ff"Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3lod Tff7b72=== Ta5d6ff"low"Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3isInterface Tff7b72= Te6edf3nodeTb4b4b4.Te6edf3group Tff7b72=== Ta5d6ff"interface"Tb4b4b4;
Tff7b72const Te6edf3baseColor Tff7b72= Te6edf3isInterface Tff7b72&& Te6edf3nodeTb4b4b4.Te6edf3color Tff7b72? Te6edf3nodeTb4b4b4.Te6edf3color Tff7b72: Tff7b72thisTb4b4b4.Te6edf3nodeColorTb4b4b4(Te6edf3blueBorderTb4b4b4, Te6edf3blueBgTb4b4b4)Tb4b4b4;
Tff7b72return Tb4b4b4{
Te6edf3idTff7b72: Te6edf3nodeTb4b4b4.Te6edf3idTb4b4b4,
Te6edf3shapeTff7b72: Ta5d6ff"dot"Tb4b4b4,
Te6edf3sizeTff7b72: Te6edf3nodeTb4b4b4.Te6edf3id Tff7b72=== Ta5d6ff"me" Tff7b72? T79c0ff15 Tff7b72: T79c0ff10Tb4b4b4,
Te6edf3fontTff7b72: Tb4b4b4{ Te6edf3sizeTff7b72: T79c0ff0 Tb4b4b4}Tb4b4b4,
Te6edf3colorTff7b72: Te6edf3baseColorTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3lod Tff7b72=== Ta5d6ff"medium"Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4{
Te6edf3idTff7b72: Te6edf3nodeTb4b4b4.Te6edf3idTb4b4b4,
Te6edf3shapeTff7b72: Te6edf3nodeTb4b4b4.Te6edf3_originalShape Tff7b72|| Ta5d6ff"circularImage"Tb4b4b4,
Te6edf3sizeTff7b72: Te6edf3nodeTb4b4b4.Te6edf3_originalSize Tff7b72|| Tb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3id Tff7b72=== Ta5d6ff"me" Tff7b72? T79c0ff50 Tff7b72: T79c0ff25Tb4b4b4)Tb4b4b4,
Te6edf3fontTff7b72: Tb4b4b4{ Te6edf3sizeTff7b72: T79c0ff0 Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72return Tb4b4b4{
Te6edf3idTff7b72: Te6edf3nodeTb4b4b4.Te6edf3idTb4b4b4,
Te6edf3shapeTff7b72: Te6edf3nodeTb4b4b4.Te6edf3_originalShape Tff7b72|| Ta5d6ff"circularImage"Tb4b4b4,
Te6edf3sizeTff7b72: Te6edf3nodeTb4b4b4.Te6edf3_originalSize Tff7b72|| Tb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3id Tff7b72=== Ta5d6ff"me" Tff7b72? T79c0ff50 Tff7b72: T79c0ff25Tb4b4b4)Tb4b4b4,
Te6edf3fontTff7b72: Tb4b4b4{ Te6edf3sizeTff7b72: Te6edf3nodeTb4b4b4.Te6edf3id Tff7b72=== Ta5d6ff"me" Tff7b72? T79c0ff16 Tff7b72: T79c0ff11Tb4b4b4, Te6edf3colorTff7b72: Te6edf3fontColor Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3updateTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3loadingStatus Tff7b72= Ta5d6ff"Fetching basic info..."Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3currentBatch Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3totalBatches Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72await Tffa657PromiseTb4b4b4.Te6edf3allTb4b4b4(Tb4b4b4[
Tff7b72thisTb4b4b4.Te6edf3getConfigTb4b4b4(Tb4b4b4)Tb4b4b4,
Tff7b72thisTb4b4b4.Te6edf3getInterfaceStatsTb4b4b4(Tb4b4b4)Tb4b4b4,
Tff7b72thisTb4b4b4.Te6edf3getConversationsTb4b4b4(Tb4b4b4)Tb4b4b4,
Tff7b72thisTb4b4b4.Te6edf3getDiscoveredInterfacesTb4b4b4(Tb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3abortControllerTb4b4b4.Te6edf3signalTb4b4b4.Te6edf3abortedTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3loadingStatus Tff7b72= Ta5d6ff"Fetching network data..."Tb4b4b4;
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3getAnnouncesBatchTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3abortControllerTb4b4b4.Te6edf3signalTb4b4b4.Te6edf3abortedTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3getPathTableBatchTb4b4b4(Tffa657ObjectTb4b4b4.Te6edf3keysTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3announcesTb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3abortControllerTb4b4b4.Te6edf3signalTb4b4b4.Te6edf3abortedTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3processVisualizationTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3processVisualizationTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72await Tff7b72new Tffa657PromiseTb4b4b4(Tb4b4b4(Te6edf3rTb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3requestAnimationFrameTb4b4b4(Te6edf3rTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3abortControllerTb4b4b4.Te6edf3signalTb4b4b4.Te6edf3abortedTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3loadingStatus Tff7b72= Ta5d6ff"Processing visualization..."Tb4b4b4;
Tff7b72const Te6edf3processedNodeIds Tff7b72= Tff7b72new Tffa657SetTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3processedEdgeIds Tff7b72= Tff7b72new Tffa657SetTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3posById Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tff7b72const Te6edf3prevIds Tff7b72= Tff7b72new Tffa657SetTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3lastVizKeysTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3enableFallingSkiesTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3_fallingById Tff7b72= Tff7b72new Tffa657MapTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3_fallingPendingIdsTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3_fallingPendingIds Tff7b72= Tff7b72new Tffa657SetTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3_fallingPendingIdsTb4b4b4.Te6edf3clearTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3_fallingByIdTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3_fallingById Tff7b72= Tff7b72new Tffa657MapTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3_fallingPendingIdsTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3_fallingPendingIds Tff7b72= Tff7b72new Tffa657SetTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72const Te6edf3allowAnnounceFall Tff7b72= Tff7b72thisTb4b4b4.Te6edf3enableFallingSkies Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3vizHadOneLayoutTb4b4b4;
Tff7b72const Te6edf3existingNodeIds Tff7b72= Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3getIdsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3snap Tff7b72= Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3getPositionsTb4b4b4(Te6edf3existingNodeIdsTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3snapTb4b4b4) Tb4b4b4{
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3id Tff7b72of Te6edf3existingNodeIdsTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3p Tff7b72= Te6edf3snapTb4b4b4[Te6edf3idTb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3p Tff7b72&& Tffa657NumberTb4b4b4.Tffa657isFiniteTb4b4b4(Te6edf3pTb4b4b4.Te6edf3xTb4b4b4) Tff7b72&& Tffa657NumberTb4b4b4.Tffa657isFiniteTb4b4b4(Te6edf3pTb4b4b4.Te6edf3yTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3posByIdTb4b4b4[Te6edf3idTb4b4b4] Tff7b72= Tb4b4b4{ Te6edf3xTff7b72: Te6edf3pTb4b4b4.Te6edf3xTb4b4b4, Te6edf3yTff7b72: Te6edf3pTb4b4b4.Te6edf3y Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tff7b72const Te6edf3isDarkMode Tff7b72= Tffa657documentTb4b4b4.Te6edf3documentElementTb4b4b4.Te6edf3classListTb4b4b4.Te6edf3containsTb4b4b4(Ta5d6ff"dark"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3fontColor Tff7b72= Te6edf3isDarkMode Tff7b72? Ta5d6ff"#ffffff" Tff7b72: Ta5d6ff"#000000"Tb4b4b4;
Tff7b72const Te6edf3searchLower Tff7b72= Tff7b72thisTb4b4b4.Te6edf3searchQueryTb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3matchesSearch Tff7b72= Tb4b4b4(Te6edf3textTb4b4b4) Tb4b4b4=> Tff7b72!Tff7b72thisTb4b4b4.Te6edf3searchQuery Tff7b72|| Tb4b4b4(Te6edf3text Tff7b72&& Te6edf3textTb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3includesTb4b4b4(Te6edf3searchLowerTb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3meLabel Tff7b72= Tff7b72thisTb4b4b4.Te6edf3configTff7b72?Tb4b4b4.Te6edf3display_name Tff7b72?? Ta5d6ff"Local Node"Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3matchesSearchTb4b4b4(Te6edf3meLabelTb4b4b4) Tff7b72|| Te6edf3matchesSearchTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3configTff7b72?Tb4b4b4.Te6edf3identity_hashTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3mp Tff7b72= Tff7b72thisTb4b4b4.Te6edf3pickStablePositionTb4b4b4(Ta5d6ff"me"Tb4b4b4, Te6edf3posByIdTb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4(Tb4b4b4{ Te6edf3xTff7b72: T79c0ff0Tb4b4b4, Te6edf3yTff7b72: T79c0ff0 Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72let Te6edf3meNode Tff7b72= Tb4b4b4{
Te6edf3idTff7b72: Ta5d6ff"me"Tb4b4b4,
Te6edf3groupTff7b72: Ta5d6ff"me"Tb4b4b4,
Te6edf3sizeTff7b72: T79c0ff50Tb4b4b4,
Te6edf3_originalSizeTff7b72: T79c0ff50Tb4b4b4,
Te6edf3shapeTff7b72: Ta5d6ff"circularImage"Tb4b4b4,
Te6edf3_originalShapeTff7b72: Ta5d6ff"circularImage"Tb4b4b4,
Te6edf3imageTff7b72: Tff7b72thisTb4b4b4.Te6edf3reticulumLogoPathTb4b4b4,
Te6edf3labelTff7b72: Te6edf3meLabelTb4b4b4,
Te6edf3titleTff7b72: Ta5d6ff`Ta5d6ffLocal Node: Tffd700${Te6edf3meLabelTffd700}Ta5d6ff\nTa5d6ffIdentity: Tffd700${Tff7b72thisTb4b4b4.Te6edf3configTff7b72?Tb4b4b4.Te6edf3identity_hash Tff7b72?? Ta5d6ff"Unknown"Tffd700}Ta5d6ff`Tb4b4b4,
Te6edf3colorTff7b72: Tff7b72thisTb4b4b4.Te6edf3nodeColorTb4b4b4(Ta5d6ff"#3b82f6"Tb4b4b4, Te6edf3isDarkMode Tff7b72? Ta5d6ff"#1e40af" Tff7b72: Ta5d6ff"#eff6ff"Tb4b4b4)Tb4b4b4,
Te6edf3fontTff7b72: Tb4b4b4{ Te6edf3colorTff7b72: Te6edf3fontColorTb4b4b4, Te6edf3sizeTff7b72: T79c0ff16Tb4b4b4, Te6edf3boldTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4,
Te6edf3xTff7b72: Te6edf3mpTb4b4b4.Te6edf3xTb4b4b4,
Te6edf3yTff7b72: Te6edf3mpTb4b4b4.Te6edf3yTb4b4b4,
Tb4b4b4}Tb4b4b4;
Te6edf3meNode Tff7b72= Tb4b4b4{ Tb4b4b4...Te6edf3meNodeTb4b4b4, Tb4b4b4...Tff7b72thisTb4b4b4.Te6edf3getNodeLODPropsTb4b4b4(Te6edf3meNodeTb4b4b4, Tff7b72thisTb4b4b4.Te6edf3currentLODTb4b4b4) Tb4b4b4}Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3updateTb4b4b4(Tb4b4b4[Te6edf3meNodeTb4b4b4]Tb4b4b4)Tb4b4b4;
Te6edf3processedNodeIdsTb4b4b4.Te6edf3addTb4b4b4(Ta5d6ff"me"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3interfaceNodes Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72const Te6edf3interfaceEdges Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72const Te6edf3ifaceEntries Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72const Te6edf3radius Tff7b72= T79c0ff400Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72let Te6edf3idx Tff7b72= T79c0ff0Tb4b4b4; Te6edf3idx Tff7b72< Tff7b72thisTb4b4b4.Te6edf3interfacesTb4b4b4.Te6edf3lengthTb4b4b4; Te6edf3idxTff7b72++Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3entry Tff7b72= Tff7b72thisTb4b4b4.Te6edf3interfacesTb4b4b4[Te6edf3idxTb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3showDisabledInterfaces Tff7b72&& Tff7b72!Te6edf3entryTb4b4b4.Te6edf3statusTb4b4b4) Tb4b4b4{
Tff7b72continueTb4b4b4;
Tb4b4b4}
Tff7b72let Te6edf3label Tff7b72= Te6edf3entryTb4b4b4.Te6edf3interface_name Tff7b72?? Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3entryTb4b4b4.Te6edf3type Tff7b72=== Ta5d6ff"LocalServerInterface" Tff7b72|| Te6edf3entryTb4b4b4.Te6edf3parent_interface_name Tff7b72!= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3label Tff7b72= Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3matchesSearchTb4b4b4(Te6edf3labelTb4b4b4) Tff7b72|| Te6edf3matchesSearchTb4b4b4(Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3ifaceEntriesTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4{ Te6edf3entryTb4b4b4, Te6edf3label Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72const Te6edf3nIface Tff7b72= Te6edf3ifaceEntriesTb4b4b4.Te6edf3lengthTb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72let Te6edf3j Tff7b72= T79c0ff0Tb4b4b4; Te6edf3j Tff7b72< Te6edf3nIfaceTb4b4b4; Te6edf3jTff7b72++Tb4b4b4) Tb4b4b4{
Tff7b72const Tb4b4b4{ Te6edf3entryTb4b4b4, Te6edf3label Tb4b4b4} Tff7b72= Te6edf3ifaceEntriesTb4b4b4[Te6edf3jTb4b4b4]Tb4b4b4;
Tff7b72const Te6edf3angle Tff7b72= Te6edf3nIface Tff7b72> T79c0ff0 Tff7b72? Tb4b4b4(Te6edf3j Tff7b72/ Te6edf3nIfaceTb4b4b4) Tff7b72* T79c0ff2 Tff7b72* Tffa657MathTb4b4b4.Te6edf3PI Tff7b72: T79c0ff0Tb4b4b4;
Tff7b72const Te6edf3initialX Tff7b72= Tffa657MathTb4b4b4.Te6edf3cosTb4b4b4(Te6edf3angleTb4b4b4) Tff7b72* Te6edf3radiusTb4b4b4;
Tff7b72const Te6edf3initialY Tff7b72= Tffa657MathTb4b4b4.Te6edf3sinTb4b4b4(Te6edf3angleTb4b4b4) Tff7b72* Te6edf3radiusTb4b4b4;
Tff7b72const Te6edf3pos Tff7b72= Tff7b72thisTb4b4b4.Te6edf3pickStablePositionTb4b4b4(Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4, Te6edf3posByIdTb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4(Tb4b4b4{ Te6edf3xTff7b72: Te6edf3initialXTb4b4b4, Te6edf3yTff7b72: Te6edf3initialY Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72let Te6edf3interfaceNode Tff7b72= Tb4b4b4{
Te6edf3idTff7b72: Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4,
Te6edf3groupTff7b72: Ta5d6ff"interface"Tb4b4b4,
Te6edf3labelTff7b72: Te6edf3labelTb4b4b4,
Te6edf3titleTff7b72: Ta5d6ff`Tffd700${Te6edf3entryTb4b4b4.Te6edf3nameTffd700}Ta5d6ff\nTa5d6ffState: Tffd700${Te6edf3entryTb4b4b4.Te6edf3status Tff7b72? Ta5d6ff"Online" Tff7b72: Ta5d6ff"Offline"Tffd700}Ta5d6ff\nTa5d6ffBitrate: Tffd700${Te6edf3UtilsTb4b4b4.Te6edf3formatBitsPerSecondTb4b4b4(Te6edf3entryTb4b4b4.Te6edf3bitrateTb4b4b4)Tffd700}Ta5d6ff\nTa5d6ffTX: Tffd700${Te6edf3UtilsTb4b4b4.Te6edf3formatBytesTb4b4b4(Te6edf3entryTb4b4b4.Te6edf3txbTb4b4b4)Tffd700}Ta5d6ff\nTa5d6ffRX: Tffd700${Te6edf3UtilsTb4b4b4.Te6edf3formatBytesTb4b4b4(Te6edf3entryTb4b4b4.Te6edf3rxbTb4b4b4)Tffd700}Ta5d6ff`Tb4b4b4,
Te6edf3sizeTff7b72: T79c0ff35Tb4b4b4,
Te6edf3_originalSizeTff7b72: T79c0ff35Tb4b4b4,
Te6edf3shapeTff7b72: Ta5d6ff"circularImage"Tb4b4b4,
Te6edf3_originalShapeTff7b72: Ta5d6ff"circularImage"Tb4b4b4,
Te6edf3imageTff7b72: Te6edf3entryTb4b4b4.Te6edf3status
Tff7b72? Ta5d6ff"/assets/images/network-visualiser/interface_connected.png"
Tff7b72: Ta5d6ff"/assets/images/network-visualiser/interface_disconnected.png"Tb4b4b4,
Te6edf3colorTff7b72: Tff7b72thisTb4b4b4.Te6edf3nodeColorTb4b4b4(Te6edf3entryTb4b4b4.Te6edf3status Tff7b72? Ta5d6ff"#10b981" Tff7b72: Ta5d6ff"#ef4444"Tb4b4b4, Te6edf3isDarkMode Tff7b72? Ta5d6ff"#064e3b" Tff7b72: Ta5d6ff"#ecfdf5"Tb4b4b4)Tb4b4b4,
Te6edf3fontTff7b72: Tb4b4b4{ Te6edf3colorTff7b72: Te6edf3fontColorTb4b4b4, Te6edf3sizeTff7b72: T79c0ff12Tb4b4b4, Te6edf3boldTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4,
Te6edf3xTff7b72: Te6edf3posTb4b4b4.Te6edf3xTb4b4b4,
Te6edf3yTff7b72: Te6edf3posTb4b4b4.Te6edf3yTb4b4b4,
Tb4b4b4}Tb4b4b4;
Te6edf3interfaceNode Tff7b72= Tb4b4b4{ Tb4b4b4...Te6edf3interfaceNodeTb4b4b4, Tb4b4b4...Tff7b72thisTb4b4b4.Te6edf3getNodeLODPropsTb4b4b4(Te6edf3interfaceNodeTb4b4b4, Tff7b72thisTb4b4b4.Te6edf3currentLODTb4b4b4) Tb4b4b4}Tb4b4b4;
Te6edf3interfaceNodesTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3interfaceNodeTb4b4b4)Tb4b4b4;
Te6edf3processedNodeIdsTb4b4b4.Te6edf3addTb4b4b4(Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3edgeId Tff7b72= Ta5d6ff`Ta5d6ffme~Tffd700${Te6edf3entryTb4b4b4.Te6edf3nameTffd700}Ta5d6ff`Tb4b4b4;
Te6edf3interfaceEdgesTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4{
Te6edf3idTff7b72: Te6edf3edgeIdTb4b4b4,
Tff7b72fromTff7b72: Ta5d6ff"me"Tb4b4b4,
Te6edf3toTff7b72: Te6edf3entryTb4b4b4.Te6edf3nameTb4b4b4,
Te6edf3colorTff7b72: Te6edf3entryTb4b4b4.Te6edf3status Tff7b72? Tb4b4b4(Te6edf3isDarkMode Tff7b72? Ta5d6ff"#065f46" Tff7b72: Ta5d6ff"#10b981"Tb4b4b4) Tff7b72: Te6edf3isDarkMode Tff7b72? Ta5d6ff"#7f1d1d" Tff7b72: Ta5d6ff"#ef4444"Tb4b4b4,
Te6edf3widthTff7b72: T79c0ff3Tb4b4b4,
Te6edf3lengthTff7b72: T79c0ff200Tb4b4b4,
Te6edf3arrowsTff7b72: Tb4b4b4{ Te6edf3toTff7b72: Tb4b4b4{ Te6edf3enabledTff7b72: Tff7b72trueTb4b4b4, Te6edf3scaleFactorTff7b72: T79c0ff0.5 Tb4b4b4} Tb4b4b4}Tb4b4b4,
Te6edf3hiddenTff7b72: Tff7b72thisTb4b4b4.Te6edf3edgesHiddenForOverlayGamesTb4b4b4(Tb4b4b4)Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3processedEdgeIdsTb4b4b4.Te6edf3addTb4b4b4(Te6edf3edgeIdTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3interfaceNodesTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3updateTb4b4b4(Te6edf3interfaceNodesTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3interfaceEdgesTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tff7b72thisTb4b4b4.Te6edf3edgesTb4b4b4.Te6edf3updateTb4b4b4(Te6edf3interfaceEdgesTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3discoveredNodes Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72const Te6edf3discoveredEdges Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3showDiscoveredInterfacesTb4b4b4) Tb4b4b4{
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3disc Tff7b72of Tff7b72thisTb4b4b4.Te6edf3discoveredInterfacesTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3discId Tff7b72= Ta5d6ff`Ta5d6ffdiscovered~Tffd700${Te6edf3discTb4b4b4.Te6edf3discovery_hash Tff7b72|| Te6edf3discTb4b4b4.Te6edf3nameTffd700}Ta5d6ff`Tb4b4b4;
Tff7b72const Te6edf3discLabel Tff7b72= Te6edf3discTb4b4b4.Te6edf3name Tff7b72|| Te6edf3discTb4b4b4.Te6edf3reachable_on Tff7b72|| Ta5d6ff"Unknown"Tb4b4b4;
Tff7b72if Tb4b4b4(
Tff7b72!Te6edf3matchesSearchTb4b4b4(Te6edf3discLabelTb4b4b4) Tff7b72&&
Tff7b72!Te6edf3matchesSearchTb4b4b4(Te6edf3discTb4b4b4.Te6edf3reachable_onTb4b4b4) Tff7b72&&
Tff7b72!Te6edf3matchesSearchTb4b4b4(Te6edf3discTb4b4b4.Te6edf3transport_idTb4b4b4)
Tb4b4b4) Tb4b4b4{
Tff7b72continueTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3hopFilterMax Tff7b72!= Tff7b72null Tff7b72&& Te6edf3discTb4b4b4.Te6edf3hops Tff7b72!= Tff7b72null Tff7b72&& Te6edf3discTb4b4b4.Te6edf3hops Tff7b72> Tff7b72thisTb4b4b4.Te6edf3hopFilterMaxTb4b4b4) Tb4b4b4{
Tff7b72continueTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3isConnected Tff7b72= Tff7b72thisTb4b4b4.Te6edf3discoveredActiveTb4b4b4.Te6edf3someTb4b4b4(Tb4b4b4(Te6edf3aTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3aHost Tff7b72= Te6edf3aTb4b4b4.Te6edf3target_host Tff7b72|| Te6edf3aTb4b4b4.Te6edf3remote Tff7b72|| Te6edf3aTb4b4b4.Te6edf3listen_ipTb4b4b4;
Tff7b72const Te6edf3aPort Tff7b72= Te6edf3aTb4b4b4.Te6edf3target_port Tff7b72|| Te6edf3aTb4b4b4.Te6edf3listen_portTb4b4b4;
Tff7b72return Te6edf3aHost Tff7b72&& Te6edf3aPort Tff7b72&& Te6edf3discTb4b4b4.Te6edf3reachable_on Tff7b72=== Te6edf3aHost Tff7b72&& Tffa657StringTb4b4b4(Te6edf3discTb4b4b4.Te6edf3portTb4b4b4) Tff7b72=== Tffa657StringTb4b4b4(Te6edf3aPortTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3angle Tff7b72= Tffa657MathTb4b4b4.Te6edf3randomTb4b4b4(Tb4b4b4) Tff7b72* T79c0ff2 Tff7b72* Tffa657MathTb4b4b4.Te6edf3PITb4b4b4;
Tff7b72const Te6edf3dist Tff7b72= T79c0ff800 Tff7b72+ Tffa657MathTb4b4b4.Te6edf3randomTb4b4b4(Tb4b4b4) Tff7b72* T79c0ff200Tb4b4b4;
Tff7b72const Te6edf3dp Tff7b72= Tff7b72thisTb4b4b4.Te6edf3pickStablePositionTb4b4b4(Te6edf3discIdTb4b4b4, Te6edf3posByIdTb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4(Tb4b4b4{
Te6edf3xTff7b72: Tffa657MathTb4b4b4.Te6edf3cosTb4b4b4(Te6edf3angleTb4b4b4) Tff7b72* Te6edf3distTb4b4b4,
Te6edf3yTff7b72: Tffa657MathTb4b4b4.Te6edf3sinTb4b4b4(Te6edf3angleTb4b4b4) Tff7b72* Te6edf3distTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72let Te6edf3discNode Tff7b72= Tb4b4b4{
Te6edf3idTff7b72: Te6edf3discIdTb4b4b4,
Te6edf3groupTff7b72: Ta5d6ff"discovered"Tb4b4b4,
Te6edf3labelTff7b72: Te6edf3discLabelTb4b4b4,
Te6edf3titleTff7b72: Ta5d6ff`Ta5d6ffDiscovered: Tffd700${Te6edf3discLabelTffd700}Ta5d6ff\nTa5d6ffType: Tffd700${Te6edf3discTb4b4b4.Te6edf3type Tff7b72|| Ta5d6ff"Unknown"Tffd700}Ta5d6ff\nTa5d6ffHops: Tffd700${Te6edf3discTb4b4b4.Te6edf3hops Tff7b72?? Ta5d6ff"?"Tffd700}Ta5d6ff\nTa5d6ffStatus: Tffd700${Te6edf3isConnected Tff7b72? Ta5d6ff"Connected" Tff7b72: Te6edf3discTb4b4b4.Te6edf3status Tff7b72|| Ta5d6ff"Available"Tffd700}Tffd700${Te6edf3discTb4b4b4.Te6edf3reachable_on Tff7b72? Ta5d6ff`Ta5d6ff\nTa5d6ffAddress: Tffd700${Te6edf3discTb4b4b4.Te6edf3reachable_onTffd700}Ta5d6ff:Tffd700${Te6edf3discTb4b4b4.Te6edf3portTffd700}Ta5d6ff` Tff7b72: Ta5d6ff""Tffd700}Ta5d6ff`Tb4b4b4,
Te6edf3sizeTff7b72: T79c0ff25Tb4b4b4,
Te6edf3_originalSizeTff7b72: T79c0ff25Tb4b4b4,
Te6edf3shapeTff7b72: Ta5d6ff"circularImage"Tb4b4b4,
Te6edf3_originalShapeTff7b72: Ta5d6ff"circularImage"Tb4b4b4,
Te6edf3imageTff7b72: Te6edf3isConnected
Tff7b72? Ta5d6ff"/assets/images/network-visualiser/interface_connected.png"
Tff7b72: Ta5d6ff"/assets/images/network-visualiser/interface_disconnected.png"Tb4b4b4,
Te6edf3colorTff7b72: Tff7b72thisTb4b4b4.Te6edf3nodeColorTb4b4b4(
Te6edf3isConnected Tff7b72? Ta5d6ff"#06b6d4" Tff7b72: Ta5d6ff"#64748b"Tb4b4b4,
Te6edf3isDarkMode Tff7b72? Tb4b4b4(Te6edf3isConnected Tff7b72? Ta5d6ff"#164e63" Tff7b72: Ta5d6ff"#1e293b"Tb4b4b4) Tff7b72: Te6edf3isConnected Tff7b72? Ta5d6ff"#ecfeff" Tff7b72: Ta5d6ff"#f1f5f9"
Tb4b4b4)Tb4b4b4,
Te6edf3fontTff7b72: Tb4b4b4{ Te6edf3colorTff7b72: Te6edf3fontColorTb4b4b4, Te6edf3sizeTff7b72: T79c0ff10 Tb4b4b4}Tb4b4b4,
Te6edf3xTff7b72: Te6edf3dpTb4b4b4.Te6edf3xTb4b4b4,
Te6edf3yTff7b72: Te6edf3dpTb4b4b4.Te6edf3yTb4b4b4,
Tb4b4b4}Tb4b4b4;
Te6edf3discNode Tff7b72= Tb4b4b4{ Tb4b4b4...Te6edf3discNodeTb4b4b4, Tb4b4b4...Tff7b72thisTb4b4b4.Te6edf3getNodeLODPropsTb4b4b4(Te6edf3discNodeTb4b4b4, Tff7b72thisTb4b4b4.Te6edf3currentLODTb4b4b4) Tb4b4b4}Tb4b4b4;
Te6edf3discoveredNodesTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3discNodeTb4b4b4)Tb4b4b4;
Te6edf3processedNodeIdsTb4b4b4.Te6edf3addTb4b4b4(Te6edf3discIdTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3edgeId Tff7b72= Ta5d6ff`Ta5d6ffme~Tffd700${Te6edf3discIdTffd700}Ta5d6ff`Tb4b4b4;
Te6edf3discoveredEdgesTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4{
Te6edf3idTff7b72: Te6edf3edgeIdTb4b4b4,
Tff7b72fromTff7b72: Ta5d6ff"me"Tb4b4b4,
Te6edf3toTff7b72: Te6edf3discIdTb4b4b4,
Te6edf3colorTff7b72: Tb4b4b4{
Te6edf3colorTff7b72: Te6edf3isDarkMode Tff7b72? Ta5d6ff"#155e75" Tff7b72: Ta5d6ff"#06b6d4"Tb4b4b4,
Te6edf3opacityTff7b72: T79c0ff0.4Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3widthTff7b72: T79c0ff1Tb4b4b4,
Te6edf3dashesTff7b72: Tff7b72trueTb4b4b4,
Te6edf3hiddenTff7b72: Tff7b72thisTb4b4b4.Te6edf3edgesHiddenForOverlayGamesTb4b4b4(Tb4b4b4)Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3processedEdgeIdsTb4b4b4.Te6edf3addTb4b4b4(Te6edf3edgeIdTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3discoveredNodesTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3updateTb4b4b4(Te6edf3discoveredNodesTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3discoveredEdgesTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tff7b72thisTb4b4b4.Te6edf3edgesTb4b4b4.Te6edf3updateTb4b4b4(Te6edf3discoveredEdgesTb4b4b4)Tb4b4b4;
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3$nextTickTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3abortControllerTb4b4b4.Te6edf3signalTb4b4b4.Te6edf3abortedTb4b4b4) Tff7b72returnTb4b4b4;
T8b949e// Process path table in batches to prevent UI block
Tff7b72thisTb4b4b4.Te6edf3totalNodesToLoad Tff7b72= Tff7b72thisTb4b4b4.Te6edf3pathTableTb4b4b4.Te6edf3lengthTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3loadedNodesCount Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72const Te6edf3aspectsToShow Tff7b72= Tb4b4b4[Ta5d6ff"lxmf.delivery"Tb4b4b4, Ta5d6ff"nomadnetwork.node"Tb4b4b4]Tb4b4b4;
T8b949e// Process in larger chunks for speed, but keep UI responsive
Tff7b72const Te6edf3chunkSize Tff7b72= T79c0ff250Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3totalBatches Tff7b72= Tffa657MathTb4b4b4.Te6edf3ceilTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3pathTableTb4b4b4.Te6edf3length Tff7b72/ Te6edf3chunkSizeTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3currentBatch Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72let Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Tff7b72thisTb4b4b4.Te6edf3pathTableTb4b4b4.Te6edf3lengthTb4b4b4; Te6edf3i Tff7b72+= Te6edf3chunkSizeTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3abortControllerTb4b4b4.Te6edf3signalTb4b4b4.Te6edf3abortedTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3currentBatchTff7b72++Tb4b4b4;
Tff7b72const Te6edf3chunk Tff7b72= Tff7b72thisTb4b4b4.Te6edf3pathTableTb4b4b4.Te6edf3sliceTb4b4b4(Te6edf3iTb4b4b4, Te6edf3i Tff7b72+ Te6edf3chunkSizeTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3batchNodes Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72const Te6edf3batchEdges Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3entry Tff7b72of Te6edf3chunkTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3loadedNodesCountTff7b72++Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3entryTb4b4b4.Te6edf3hops Tff7b72== Tff7b72nullTb4b4b4) Tff7b72continueTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3hopFilterMax Tff7b72!= Tff7b72null Tff7b72&& Te6edf3entryTb4b4b4.Te6edf3hops Tff7b72> Tff7b72thisTb4b4b4.Te6edf3hopFilterMaxTb4b4b4) Tff7b72continueTb4b4b4;
Tff7b72const Te6edf3announce Tff7b72= Tff7b72thisTb4b4b4.Te6edf3announcesTb4b4b4[Te6edf3entryTb4b4b4.Te6edf3hashTb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3announce Tff7b72|| Tff7b72!Te6edf3aspectsToShowTb4b4b4.Te6edf3includesTb4b4b4(Te6edf3announceTb4b4b4.Te6edf3aspectTb4b4b4)Tb4b4b4) Tff7b72continueTb4b4b4;
Tff7b72const Te6edf3displayName Tff7b72= Te6edf3announceTb4b4b4.Te6edf3custom_display_name Tff7b72?? Te6edf3announceTb4b4b4.Te6edf3display_nameTb4b4b4;
Tff7b72if Tb4b4b4(
Tff7b72!Te6edf3matchesSearchTb4b4b4(Te6edf3displayNameTb4b4b4) Tff7b72&&
Tff7b72!Te6edf3matchesSearchTb4b4b4(Te6edf3announceTb4b4b4.Te6edf3destination_hashTb4b4b4) Tff7b72&&
Tff7b72!Te6edf3matchesSearchTb4b4b4(Te6edf3announceTb4b4b4.Te6edf3identity_hashTb4b4b4)
Tb4b4b4) Tb4b4b4{
Tff7b72continueTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3conversation Tff7b72= Tff7b72thisTb4b4b4.Te6edf3conversationsTb4b4b4[Te6edf3announceTb4b4b4.Te6edf3destination_hashTb4b4b4]Tb4b4b4;
Tff7b72const Te6edf3ip Tff7b72= Te6edf3posByIdTb4b4b4[Te6edf3entryTb4b4b4.Tff7b72interfaceTb4b4b4]Tb4b4b4;
Tff7b72let Te6edf3initX Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72let Te6edf3initY Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3ip Tff7b72&& Tffa657NumberTb4b4b4.Tffa657isFiniteTb4b4b4(Te6edf3ipTb4b4b4.Te6edf3xTb4b4b4) Tff7b72&& Tffa657NumberTb4b4b4.Tffa657isFiniteTb4b4b4(Te6edf3ipTb4b4b4.Te6edf3yTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3angle Tff7b72= Tffa657MathTb4b4b4.Te6edf3randomTb4b4b4(Tb4b4b4) Tff7b72* T79c0ff2 Tff7b72* Tffa657MathTb4b4b4.Te6edf3PITb4b4b4;
Tff7b72const Te6edf3dist Tff7b72= T79c0ff150 Tff7b72+ Tffa657MathTb4b4b4.Te6edf3randomTb4b4b4(Tb4b4b4) Tff7b72* T79c0ff150Tb4b4b4;
Te6edf3initX Tff7b72= Te6edf3ipTb4b4b4.Te6edf3x Tff7b72+ Tffa657MathTb4b4b4.Te6edf3cosTb4b4b4(Te6edf3angleTb4b4b4) Tff7b72* Te6edf3distTb4b4b4;
Te6edf3initY Tff7b72= Te6edf3ipTb4b4b4.Te6edf3y Tff7b72+ Tffa657MathTb4b4b4.Te6edf3sinTb4b4b4(Te6edf3angleTb4b4b4) Tff7b72* Te6edf3distTb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72const Te6edf3angle Tff7b72= Tffa657MathTb4b4b4.Te6edf3randomTb4b4b4(Tb4b4b4) Tff7b72* T79c0ff2 Tff7b72* Tffa657MathTb4b4b4.Te6edf3PITb4b4b4;
Tff7b72const Te6edf3dist Tff7b72= T79c0ff600 Tff7b72+ Tffa657MathTb4b4b4.Te6edf3randomTb4b4b4(Tb4b4b4) Tff7b72* T79c0ff200Tb4b4b4;
Te6edf3initX Tff7b72= Tffa657MathTb4b4b4.Te6edf3cosTb4b4b4(Te6edf3angleTb4b4b4) Tff7b72* Te6edf3distTb4b4b4;
Te6edf3initY Tff7b72= Tffa657MathTb4b4b4.Te6edf3sinTb4b4b4(Te6edf3angleTb4b4b4) Tff7b72* Te6edf3distTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3targetXY Tff7b72= Tff7b72thisTb4b4b4.Te6edf3pickStablePositionTb4b4b4(Te6edf3entryTb4b4b4.Te6edf3hashTb4b4b4, Te6edf3posByIdTb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4(Tb4b4b4{ Te6edf3xTff7b72: Te6edf3initXTb4b4b4, Te6edf3yTff7b72: Te6edf3initY Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3edgeId Tff7b72= Ta5d6ff`Tffd700${Te6edf3entryTb4b4b4.Tff7b72interfaceTffd700}Ta5d6ff~Tffd700${Te6edf3entryTb4b4b4.Te6edf3hashTffd700}Ta5d6ff`Tb4b4b4;
Tff7b72const Te6edf3shouldFall Tff7b72= Te6edf3allowAnnounceFall Tff7b72&& Tff7b72!Te6edf3prevIdsTb4b4b4.Te6edf3hasTb4b4b4(Te6edf3entryTb4b4b4.Te6edf3hashTb4b4b4)Tb4b4b4;
Tff7b72let Te6edf3node Tff7b72= Tb4b4b4{
Te6edf3idTff7b72: Te6edf3entryTb4b4b4.Te6edf3hashTb4b4b4,
Te6edf3groupTff7b72: Ta5d6ff"announce"Tb4b4b4,
Te6edf3sizeTff7b72: T79c0ff25Tb4b4b4,
Te6edf3_originalSizeTff7b72: T79c0ff25Tb4b4b4,
Te6edf3_announceTff7b72: Te6edf3announceTb4b4b4,
Te6edf3_parentInterfaceTff7b72: Te6edf3entryTb4b4b4.Tff7b72interfaceTb4b4b4,
Te6edf3fontTff7b72: Tb4b4b4{ Te6edf3colorTff7b72: Te6edf3fontColorTb4b4b4, Te6edf3sizeTff7b72: T79c0ff11 Tb4b4b4}Tb4b4b4,
Te6edf3xTff7b72: Te6edf3targetXYTb4b4b4.Te6edf3xTb4b4b4,
Te6edf3yTff7b72: Te6edf3targetXYTb4b4b4.Te6edf3yTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3shouldFallTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3_fallingPendingIdsTb4b4b4.Te6edf3addTb4b4b4(Te6edf3entryTb4b4b4.Te6edf3hashTb4b4b4)Tb4b4b4;
Tff7b72let Te6edf3topY Tff7b72= Te6edf3targetXYTb4b4b4.Te6edf3y Tff7b72- T79c0ff1100Tb4b4b4;
Tff7b72const Te6edf3container Tff7b72= Tffa657documentTb4b4b4.Te6edf3getElementByIdTb4b4b4(Ta5d6ff"network"Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3container Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3scale Tff7b72= Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3getScaleTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3vp Tff7b72= Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3getViewPositionTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3halfH Tff7b72= Te6edf3containerTb4b4b4.Te6edf3clientHeight Tff7b72/ Tb4b4b4(T79c0ff2 Tff7b72* Te6edf3scaleTb4b4b4)Tb4b4b4;
Te6edf3topY Tff7b72= Te6edf3vpTb4b4b4.Te6edf3y Tff7b72- Te6edf3halfH Tff7b72- T79c0ff60Tb4b4b4;
Tb4b4b4}
Te6edf3nodeTb4b4b4.Te6edf3x Tff7b72= Te6edf3targetXYTb4b4b4.Te6edf3xTb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3y Tff7b72= Te6edf3topYTb4b4b4;
Te6edf3posByIdTb4b4b4[Te6edf3entryTb4b4b4.Te6edf3hashTb4b4b4] Tff7b72= Tb4b4b4{ Te6edf3xTff7b72: Te6edf3targetXYTb4b4b4.Te6edf3xTb4b4b4, Te6edf3yTff7b72: Te6edf3targetXYTb4b4b4.Te6edf3y Tb4b4b4}Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_fallingByIdTb4b4b4.Te6edf3setTb4b4b4(Te6edf3entryTb4b4b4.Te6edf3hashTb4b4b4, Tb4b4b4{
Te6edf3txTff7b72: Te6edf3targetXYTb4b4b4.Te6edf3xTb4b4b4,
Te6edf3tyTff7b72: Te6edf3targetXYTb4b4b4.Te6edf3yTb4b4b4,
Te6edf3xTff7b72: Te6edf3targetXYTb4b4b4.Te6edf3xTb4b4b4,
Te6edf3yTff7b72: Te6edf3topYTb4b4b4,
Te6edf3vyTff7b72: T79c0ff0Tb4b4b4,
Te6edf3edgeIdsTff7b72: Tb4b4b4[Te6edf3edgeIdTb4b4b4]Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3nodeTb4b4b4.Te6edf3label Tff7b72= Te6edf3displayNameTb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3title Tff7b72= Ta5d6ff`Tffd700${Te6edf3displayNameTffd700}Ta5d6ff\nTa5d6ffAspect: Tffd700${Te6edf3announceTb4b4b4.Te6edf3aspectTffd700}Ta5d6ff\nTa5d6ffHops: Tffd700${Te6edf3entryTb4b4b4.Te6edf3hopsTffd700}Ta5d6ff\nTa5d6ffVia: Tffd700${Te6edf3entryTb4b4b4.Tff7b72interfaceTffd700}Ta5d6ff\nTa5d6ffLast Seen: Tffd700${Te6edf3UtilsTb4b4b4.Te6edf3convertDateTimeToLocalDateTimeStringTb4b4b4(Tff7b72new Tffa657DateTb4b4b4(Te6edf3announceTb4b4b4.Te6edf3updated_atTb4b4b4)Tb4b4b4)Tffd700}Ta5d6ff`Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3announceTb4b4b4.Te6edf3aspect Tff7b72=== Ta5d6ff"lxmf.delivery"Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3conversationTff7b72?Tb4b4b4.Te6edf3lxmf_user_iconTb4b4b4) Tb4b4b4{
Te6edf3nodeTb4b4b4.Te6edf3shape Tff7b72= Ta5d6ff"circularImage"Tb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3_originalShape Tff7b72= Ta5d6ff"circularImage"Tb4b4b4;
Tff7b72const Te6edf3cacheKey Tff7b72= Ta5d6ff`Tffd700${Te6edf3conversationTb4b4b4.Te6edf3lxmf_user_iconTb4b4b4.Te6edf3icon_nameTffd700}Ta5d6ff-Tffd700${Te6edf3conversationTb4b4b4.Te6edf3lxmf_user_iconTb4b4b4.Te6edf3foreground_colourTffd700}Ta5d6ff-Tffd700${Te6edf3conversationTb4b4b4.Te6edf3lxmf_user_iconTb4b4b4.Te6edf3background_colourTffd700}Ta5d6ff-64Ta5d6ff`Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3iconCacheTb4b4b4[Te6edf3cacheKeyTb4b4b4]Tb4b4b4) Tb4b4b4{
Te6edf3nodeTb4b4b4.Te6edf3image Tff7b72= Tff7b72thisTb4b4b4.Te6edf3iconCacheTb4b4b4[Te6edf3cacheKeyTb4b4b4]Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3nodeTb4b4b4.Te6edf3image Tff7b72= Tff7b72await Tff7b72thisTb4b4b4.Te6edf3createIconImageTb4b4b4(
Te6edf3conversationTb4b4b4.Te6edf3lxmf_user_iconTb4b4b4.Te6edf3icon_nameTb4b4b4,
Te6edf3conversationTb4b4b4.Te6edf3lxmf_user_iconTb4b4b4.Te6edf3foreground_colourTb4b4b4,
Te6edf3conversationTb4b4b4.Te6edf3lxmf_user_iconTb4b4b4.Te6edf3background_colourTb4b4b4,
T79c0ff64
Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3abortControllerTb4b4b4.Te6edf3signalTb4b4b4.Te6edf3abortedTb4b4b4) Tff7b72returnTb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3size Tff7b72= T79c0ff30Tb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3_originalSize Tff7b72= T79c0ff30Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3nodeTb4b4b4.Te6edf3shape Tff7b72= Ta5d6ff"circularImage"Tb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3_originalShape Tff7b72= Ta5d6ff"circularImage"Tb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3image Tff7b72=
Te6edf3entryTb4b4b4.Te6edf3hops Tff7b72=== T79c0ff1
Tff7b72? Ta5d6ff"/assets/images/network-visualiser/user_1hop.png"
Tff7b72: Ta5d6ff"/assets/images/network-visualiser/user.png"Tb4b4b4;
Tb4b4b4}
Te6edf3nodeTb4b4b4.Te6edf3color Tff7b72= Tff7b72thisTb4b4b4.Te6edf3nodeColorTb4b4b4(
Te6edf3entryTb4b4b4.Te6edf3hops Tff7b72=== T79c0ff1 Tff7b72? Ta5d6ff"#10b981" Tff7b72: Ta5d6ff"#3b82f6"Tb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3hops Tff7b72=== T79c0ff1 Tff7b72? Tb4b4b4(Te6edf3isDarkMode Tff7b72? Ta5d6ff"#064e3b" Tff7b72: Ta5d6ff"#ecfdf5"Tb4b4b4) Tff7b72: Te6edf3isDarkMode Tff7b72? Ta5d6ff"#1e40af" Tff7b72: Ta5d6ff"#eff6ff"
Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3announceTb4b4b4.Te6edf3aspect Tff7b72=== Ta5d6ff"nomadnetwork.node"Tb4b4b4) Tb4b4b4{
Te6edf3nodeTb4b4b4.Te6edf3shape Tff7b72= Ta5d6ff"circularImage"Tb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3_originalShape Tff7b72= Ta5d6ff"circularImage"Tb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3image Tff7b72=
Te6edf3entryTb4b4b4.Te6edf3hops Tff7b72=== T79c0ff1
Tff7b72? Ta5d6ff"/assets/images/network-visualiser/server_1hop.png"
Tff7b72: Ta5d6ff"/assets/images/network-visualiser/server.png"Tb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3color Tff7b72= Tff7b72thisTb4b4b4.Te6edf3nodeColorTb4b4b4(
Te6edf3entryTb4b4b4.Te6edf3hops Tff7b72=== T79c0ff1 Tff7b72? Ta5d6ff"#10b981" Tff7b72: Ta5d6ff"#8b5cf6"Tb4b4b4,
Te6edf3entryTb4b4b4.Te6edf3hops Tff7b72=== T79c0ff1 Tff7b72? Tb4b4b4(Te6edf3isDarkMode Tff7b72? Ta5d6ff"#064e3b" Tff7b72: Ta5d6ff"#ecfdf5"Tb4b4b4) Tff7b72: Te6edf3isDarkMode Tff7b72? Ta5d6ff"#4c1d95" Tff7b72: Ta5d6ff"#f5f3ff"
Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3node Tff7b72= Tb4b4b4{ Tb4b4b4...Te6edf3nodeTb4b4b4, Tb4b4b4...Tff7b72thisTb4b4b4.Te6edf3getNodeLODPropsTb4b4b4(Te6edf3nodeTb4b4b4, Tff7b72thisTb4b4b4.Te6edf3currentLODTb4b4b4) Tb4b4b4}Tb4b4b4;
Te6edf3batchNodesTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3nodeTb4b4b4)Tb4b4b4;
Te6edf3processedNodeIdsTb4b4b4.Te6edf3addTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3idTb4b4b4)Tb4b4b4;
Te6edf3batchEdgesTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4{
Te6edf3idTff7b72: Te6edf3edgeIdTb4b4b4,
Tff7b72fromTff7b72: Te6edf3entryTb4b4b4.Tff7b72interfaceTb4b4b4,
Te6edf3toTff7b72: Te6edf3entryTb4b4b4.Te6edf3hashTb4b4b4,
Te6edf3colorTff7b72: Tb4b4b4{
Te6edf3colorTff7b72:
Te6edf3entryTb4b4b4.Te6edf3hops Tff7b72=== T79c0ff1
Tff7b72? Te6edf3isDarkMode
Tff7b72? Ta5d6ff"#065f46"
Tff7b72: Ta5d6ff"#10b981"
Tff7b72: Te6edf3isDarkMode
Tff7b72? Ta5d6ff"#1e3a8a"
Tff7b72: Ta5d6ff"#3b82f6"Tb4b4b4,
Te6edf3opacityTff7b72: Te6edf3entryTb4b4b4.Te6edf3hops Tff7b72=== T79c0ff1 Tff7b72? T79c0ff1 Tff7b72: T79c0ff0.5Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3widthTff7b72: Te6edf3entryTb4b4b4.Te6edf3hops Tff7b72=== T79c0ff1 Tff7b72? T79c0ff2 Tff7b72: T79c0ff1Tb4b4b4,
Te6edf3dashesTff7b72: Te6edf3entryTb4b4b4.Te6edf3hops Tff7b72> T79c0ff1Tb4b4b4,
Te6edf3hiddenTff7b72: Tff7b72thisTb4b4b4.Te6edf3edgeHiddenForModeTb4b4b4(Te6edf3entryTb4b4b4.Te6edf3hashTb4b4b4)Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3processedEdgeIdsTb4b4b4.Te6edf3addTb4b4b4(Te6edf3edgeIdTb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e// Update DataSet incrementally
Tff7b72if Tb4b4b4(Te6edf3batchNodesTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3updateTb4b4b4(Te6edf3batchNodesTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3batchEdgesTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tff7b72thisTb4b4b4.Te6edf3edgesTb4b4b4.Te6edf3updateTb4b4b4(Te6edf3batchEdgesTb4b4b4)Tb4b4b4;
T8b949e// Allow UI to breathe and show progress
Tff7b72thisTb4b4b4.Te6edf3loadingStatus Tff7b72= Ta5d6ff`Ta5d6ffProcessing Batch Tffd700${Tff7b72thisTb4b4b4.Te6edf3currentBatchTffd700}Ta5d6ff / Tffd700${Tff7b72thisTb4b4b4.Te6edf3totalBatchesTffd700}Ta5d6ff...Ta5d6ff`Tb4b4b4;
T8b949e// Use nextTick for responsiveness
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3$nextTickTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3abortControllerTb4b4b4.Te6edf3signalTb4b4b4.Te6edf3abortedTb4b4b4) Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3enablePongTb4b4b4) Tb4b4b4{
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3id Tff7b72of Te6edf3PONG_NODE_IDSTb4b4b4) Tb4b4b4{
Te6edf3processedNodeIdsTb4b4b4.Te6edf3addTb4b4b4(Te6edf3idTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
T8b949e// Cleanup: remove nodes/edges that are no longer in the network
Tff7b72const Te6edf3nodesToRemove Tff7b72= Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3getIdsTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3idTb4b4b4) Tb4b4b4=> Tff7b72!Te6edf3processedNodeIdsTb4b4b4.Te6edf3hasTb4b4b4(Te6edf3idTb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3nodesToRemoveTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tff7b72thisTb4b4b4.Te6edf3nodesTb4b4b4.Te6edf3removeTb4b4b4(Te6edf3nodesToRemoveTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3edgesToRemove Tff7b72= Tff7b72thisTb4b4b4.Te6edf3edgesTb4b4b4.Te6edf3getIdsTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3idTb4b4b4) Tb4b4b4=> Tff7b72!Te6edf3processedEdgeIdsTb4b4b4.Te6edf3hasTb4b4b4(Te6edf3idTb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3edgesToRemoveTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tff7b72thisTb4b4b4.Te6edf3edgesTb4b4b4.Te6edf3removeTb4b4b4(Te6edf3edgesToRemoveTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3totalNodesToLoad Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3loadedNodesCount Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3currentBatch Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3totalBatches Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3lastVizKeys Tff7b72= Tb4b4b4[Tb4b4b4...Te6edf3processedNodeIdsTb4b4b4]Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3vizHadOneLayout Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3network Tff7b72&& Tff7b72!Tff7b72thisTb4b4b4.Te6edf3didDisableStabilizationTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3didDisableStabilization Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3networkTb4b4b4.Te6edf3setOptionsTb4b4b4(Tb4b4b4{ Te6edf3physicsTff7b72: Tb4b4b4{ Te6edf3stabilizationTff7b72: Tb4b4b4{ Te6edf3enabledTff7b72: Tff7b72false Tb4b4b4} Tb4b4b4} Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3enableFallingSkies Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3_fallingById Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3_fallingByIdTb4b4b4.Te6edf3size Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3scheduleFallingTickTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3enableSnake Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3_snakeFoodIdsTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3reconcileSnakeFoodAfterVizTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3enableOrbitTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3startOrbitTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4<Tb4b4b4/Tff7b72scriptTb4b4b4>
Tb4b4b4<Tff7b72styleTb4b4b4>
Tb4b4b4.T56d364vis-networkTb4b4b4:Tf0883efocus Tb4b4b4{
Tff7b72outlineTb4b4b4: Tff7b72noneTb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364vis-tooltip Tb4b4b4{
Tff7b72colorTb4b4b4: T79c0ff#f4f4f5 Tff7b72!importantTb4b4b4;
Tff7b72backgroundTb4b4b4: Tffa657rgbaTb4b4b4(T79c0ff9Tb4b4b4, T79c0ff9Tb4b4b4, T79c0ff11Tb4b4b4, T79c0ff0.9Tb4b4b4) Tff7b72!importantTb4b4b4;
Tff7b72borderTb4b4b4: T79c0ff1Tffa657px Tff7b72solid Tffa657rgbaTb4b4b4(T79c0ff63Tb4b4b4, T79c0ff63Tb4b4b4, T79c0ff70Tb4b4b4, T79c0ff0.5Tb4b4b4) Tff7b72!importantTb4b4b4;
Tff7b72border-radiusTb4b4b4: T79c0ff12Tffa657px Tff7b72!importantTb4b4b4;
Tff7b72paddingTb4b4b4: T79c0ff12Tffa657px T79c0ff16Tffa657px Tff7b72!importantTb4b4b4;
Tff7b72font-sizeTb4b4b4: T79c0ff13Tffa657px Tff7b72!importantTb4b4b4;
Tff7b72font-weightTb4b4b4: T79c0ff500 Tff7b72!importantTb4b4b4;
Tff7b72font-styleTb4b4b4: Tff7b72normal Tff7b72!importantTb4b4b4;
Tff7b72font-familyTb4b4b4: Te6edf3InterTb4b4b4, Te6edf3system-uiTb4b4b4, Tff7b72sans-serif Tff7b72!importantTb4b4b4;
Tff7b72line-heightTb4b4b4: T79c0ff1.5 Tff7b72!importantTb4b4b4;
Te6edf3backdrop-filterTb4b4b4: Tffa657blurTb4b4b4(T79c0ff8Tffa657pxTb4b4b4) Tff7b72!importantTb4b4b4;
Tff7b72pointer-eventsTb4b4b4: Tff7b72none Tff7b72!importantTb4b4b4;
Tb4b4b4}
Tb4b4b4#T7ee787network Tb4b4b4{
Tff7b72background-colorTb4b4b4: T79c0ff#f8fafcTb4b4b4;
Tff7b72background-imageTb4b4b4: Tffa657radial-gradientTb4b4b4(T79c0ff#e2e8f0 T79c0ff1Tffa657pxTb4b4b4, Tff7b72transparent T79c0ff1Tffa657pxTb4b4b4)Tb4b4b4;
Tff7b72background-sizeTb4b4b4: T79c0ff32Tffa657px T79c0ff32Tffa657pxTb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364dark Tb4b4b4#T7ee787network Tb4b4b4{
Tff7b72background-colorTb4b4b4: T79c0ff#09090bTb4b4b4;
Tff7b72background-imageTb4b4b4: Tffa657radial-gradientTb4b4b4(T79c0ff#18181b T79c0ff1Tffa657pxTb4b4b4, Tff7b72transparent T79c0ff1Tffa657pxTb4b4b4)Tb4b4b4;
Tff7b72background-sizeTb4b4b4: T79c0ff32Tffa657px T79c0ff32Tffa657pxTb4b4b4;
Tb4b4b4}
Tb4b4b4<Tb4b4b4/Tff7b72styleTb4b4b4>
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────